Google Drive API دو سطح از اطلاعات خطا را برمیگرداند:
- کدهای خطای HTTP و پیام های سرصفحه.
- یک شی JSON در بدنه پاسخ با جزئیات اضافی که می تواند به شما در تعیین نحوه رسیدگی به خطا کمک کند.
برنامههای Google Drive باید همه خطاهایی را که ممکن است هنگام استفاده از REST API با آنها مواجه شود، شناسایی کرده و آنها را کنترل کند. این راهنما دستورالعملهایی درباره نحوه رفع خطاهای خاص Drive API ارائه میدهد.
خلاصه کد وضعیت HTTP
کد خطا | توضیحات |
---|---|
200 - OK | درخواست موفقیت آمیز است (این پاسخ استاندارد برای درخواست های موفق HTTP است). |
400 - Bad Request | درخواست به دلیل خطای مشتری در درخواست انجام نمی شود. |
401 - Unauthorized | درخواست حاوی اعتبارنامه های نامعتبر است. |
403 - Forbidden | درخواست دریافت و درک شد، اما کاربر اجازه انجام درخواست را ندارد. |
404 - Not Found | صفحه درخواستی یافت نشد. |
429 - Too Many Requests | درخواست های بیش از حد به API. |
500, 502, 503, 504 - Server Errors | هنگام پردازش درخواست، خطای غیرمنتظره ای رخ می دهد. |
400 خطا
این خطاها به این معنی است که درخواست غیرقابل قبول بوده است، که اغلب به دلیل عدم وجود پارامتر مورد نیاز است.
badRequest
این خطا ممکن است از یکی از مشکلات زیر در کد شما رخ دهد:
- فیلد یا پارامتر الزامی ارائه نشده است.
- مقدار ارائه شده یا ترکیبی از فیلدهای ارائه شده نامعتبر است.
- سعی کردید یک والد تکراری به فایل Drive اضافه کنید.
- شما سعی کردید یک والد اضافه کنید که یک چرخه در نمودار دایرکتوری ایجاد کند.
نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"code": 400,
"errors": [
{
"domain": "global",
"location": "orderBy",
"locationType": "parameter",
"message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.",
"reason": "badRequest"
}
],
"message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order."
}
}
برای رفع این خطا، قسمت message
را بررسی کنید و کد خود را بر اساس آن تنظیم کنید.
invalidSharingRequest
این خطا به چند دلیل رخ می دهد. برای تعیین علت، فیلد reason
JSON برگشتی را ارزیابی کنید. این خطا بیشتر به این دلیل رخ می دهد:
- اشتراکگذاری با موفقیت انجام شد، اما ایمیل اعلان به درستی تحویل داده نشد.
- تغییر فهرست کنترل دسترسی (ACL) برای این کاربر مجاز نیست.
فیلد message
نشان دهنده خطای واقعی است.
اشتراکگذاری با موفقیت انجام شد، اما ایمیل اعلان به درستی تحویل داده نشد
نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidSharingRequest",
"message": "Bad Request. User message: \"Sorry, the items were successfully shared but emails could not be sent to email@domain.com.\""
}
],
"code": 400,
"message": "Bad Request"
}
}
برای رفع این خطا، به کاربر (اشتراکگذار) اطلاع دهید که قادر به اشتراکگذاری نیست زیرا ایمیل اعلان به آدرس ایمیل مقصد ارسال نمیشود. کاربر باید مطمئن شود که آدرس ایمیل صحیح را دارد و می تواند ایمیل دریافت کند.
تغییر ACL برای این کاربر مجاز نیست
نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidSharingRequest",
"message": "Bad Request. User message: \"ACL change not allowed.\""
}
],
"code": 400,
"message": "Bad Request"
}
}
برای رفع این خطا، تنظیمات اشتراک گذاری دامنه Google Workspace که فایل به آن تعلق دارد را بررسی کنید. تنظیمات ممکن است اشتراکگذاری خارج از دامنه را ممنوع کند یا ممکن است اشتراکگذاری درایو مشترک مجاز نباشد.
401 خطا
این خطاها به این معنی است که درخواست حاوی یک نشانه دسترسی معتبر نیست.
authError
این خطا زمانی رخ می دهد که رمز دسترسی که استفاده می کنید منقضی شده باشد یا نامعتبر باشد. این خطا همچنین می تواند ناشی از عدم مجوز برای محدوده های درخواستی باشد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization",
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
برای رفع این خطا، رمز دسترسی را با استفاده از نشانه رفرش طولانی مدت بازخوانی کنید. اگر این کار انجام نشد، همانطور که در Choose Google Drive API scopes توضیح داده شده است، کاربر را از طریق جریان OAuth هدایت کنید.
fileNotDownloadable
این خطا زمانی رخ می دهد که سعی می کنید از روش revisions.get
با پارامتر URL alt=media
در یک سند Google Workspace استفاده کنید. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotDownloadable",
"message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
}
],
"code": 403,
"message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
- اگر میخواهید ابرداده یک ویرایش خاص، مانند mimetype را مشاهده کنید، پارامتر URL
alt=media
را حذف کنید. - برای صادر کردن محتوای بایت سند Google Workspace از روش
files.export
استفاده کنید. برای اطلاعات بیشتر، صادرات محتوای سند Google Workspace را ببینید.
403 خطا
این خطاها به این معنی است که از محدودیت استفاده فراتر رفته است یا کاربر از امتیازات صحیح برخوردار نیست. برای تعیین علت، فیلد reason
JSON برگشتی را ارزیابی کنید.
برای اطلاعات در مورد محدودیتهای Drive API، به محدودیتهای استفاده مراجعه کنید. برای اطلاعات در مورد محدودیتهای پوشه Drive، به محدودیتهای فایل و پوشه مراجعه کنید.
activeItemCreationLimitExceeded
یک خطای activeItemCreationLimitExceeded
زمانی رخ می دهد که از محدودیت تعداد موارد ایجاد شده در هر حساب فراتر رفته باشد. هر کاربر می تواند تا 500 میلیون مورد ایجاد شده توسط یک حساب کاربری داشته باشد. برای اطلاعات بیشتر، محدودیت آیتم کاربر را ببینید.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "activeItemCreationLimitExceeded",
"message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
}
],
"code": 403,
"message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
}
}
برای رفع این خطا:
به کاربر اطلاع دهید که Drive از ایجاد بیش از 500 میلیون مورد توسط حسابها جلوگیری میکند.
اگر کاربر باید مواردی را در همین حساب ایجاد کند، به او دستور دهید تا برخی از اشیاء را برای همیشه حذف کند. در غیر این صورت، آنها می توانند از حساب دیگری استفاده کنند که قبلاً نیاز را برآورده می کند.
appNotAuthorizedToFile
این خطا زمانی رخ می دهد که برنامه شما روی ACL فایل نباشد. این خطا باعث می شود کاربر نتواند فایل را با برنامه شما باز کند. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "appNotAuthorizedToFile",
"message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
}
],
"code": 403,
"message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
- انتخابگر Google Drive را باز کنید و از کاربر بخواهید فایل را باز کند.
- به کاربر دستور دهید فایل را با استفاده از منوی باز کردن با زمینه در رابط کاربری Drive برنامه شما باز کند.
- از روش
files.get
برای بررسی قسمتisAppAuthorized
در منبعfiles
استفاده کنید تا تأیید کنید که برنامه شما فایل را ایجاد یا باز کرده است.
cannotModifyInheritedTeamDrivePermission
این خطا زمانی رخ می دهد که کاربر سعی می کند مجوزهای ارثی یک مورد را در یک درایو مشترک تغییر دهد. مجوزهای ارثی را نمی توان از یک مورد در درایو مشترک حذف کرد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "cannotModifyInheritedTeamDrivePermission",
"message": "Cannot update or delete an inherited permission on a shared drive item."
}
],
"code": 403,
"message": "Cannot update or delete an inherited permission on a shared drive item."
}
}
برای رفع این خطا، کاربر باید مجوزهای مورد والد مستقیم یا غیرمستقیم را که از آن به ارث رسیده است تنظیم کند. برای اطلاعات بیشتر، به انتشار مجوز مراجعه کنید. همچنین میتوانید منبع permissions.permissionDetails
را بازیابی کنید تا ببینید آیا مجوزهای این مورد درایو مشترک به ارث رسیده یا مستقیماً اعمال میشوند.
dailyLimitExceeded
این خطا زمانی رخ می دهد که به محدودیت API برای پروژه شما رسیده باشد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceeded",
"message": "Daily Limit Exceeded"
}
],
"code": 403,
"message": "Daily Limit Exceeded"
}
}
این خطا زمانی ظاهر میشود که مالک برنامه یک محدودیت سهمیه برای محدود کردن استفاده از یک منبع خاص تعیین کرده باشد. برای رفع این خطا، محدودیتهای استفاده را برای سهمیه «پرسمانها در روز» حذف کنید .
domainPolicy
این خطا زمانی رخ میدهد که خطمشی دامنه کاربر اجازه دسترسی به Drive توسط برنامه شما را نمیدهد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "domainPolicy",
"message": "The domain administrators have disabled Drive apps."
}
],
"code": 403,
"message": "The domain administrators have disabled Drive apps."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که دامنه به برنامه شما اجازه دسترسی به فایلهای موجود در Drive را نمیدهد.
- به کاربر دستور دهید برای درخواست دسترسی به برنامه شما با سرپرست دامنه تماس بگیرد.
fileOwnerNotMemberOfTeamDrive
این خطا زمانی رخ می دهد که می خواهید یک فایل را به یک درایو مشترک منتقل کنید و مالک فایل عضو آن نیست. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileOwnerNotMemberOfTeamDrive",
"message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
}
],
"code": 403,
"message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
}
}
برای رفع این خطا:
عضو را با
role=owner
به درایو مشترک اضافه کنید. برای اطلاعات بیشتر، به اشتراک گذاری فایل ها، پوشه ها و درایوها مراجعه کنید.فایل را به درایو مشترک اضافه کنید. برای اطلاعات بیشتر، به ایجاد و پر کردن پوشهها مراجعه کنید.
fileWriterTeamDriveMoveInDisabled
این خطا زمانی رخ می دهد که یک مدیر دامنه به کاربران دارای role=writer
اجازه نمی دهد موارد را به درایو مشترک منتقل کنند. کاربری که تلاش می کند موارد را جابجا کند، مجوزهای کمتری نسبت به درایو مشترک مقصد دارد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileWriterTeamDriveMoveInDisabled",
"message": "The domain administrator has not allowed writers to move items into a shared drive."
}
],
"code": 403,
"message": "The domain administrator has not allowed writers to move items into a shared drive."
}
}
برای رفع این خطا، از یک حساب کاربری مدیر در هر دو درایو مشترک مبدا و مقصد استفاده کنید.
insufficientFilePermissions
این خطا زمانی رخ می دهد که کاربر به فایلی دسترسی ندارد و برنامه شما در حال تلاش برای تغییر فایل است. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientFilePermissions",
"message": "The user does not have sufficient permissions for file {fileId}."
}
],
"code": 403,
"message": "The user does not have sufficient permissions for file {fileId}."
}
}
برای رفع این خطا، به کاربر دستور دهید که با مالک فایل تماس گرفته و درخواست دسترسی ویرایش کند. همچنین میتوانید سطوح دسترسی کاربر را در فرادادههای بازیابیشده با روش files.get
بررسی کنید و در صورت از دست دادن مجوزها، یک رابط کاربری فقط خواندنی نمایش دهید.
myDriveHierarchyDepthLimitExceeded
یک خطای myDriveHierarchyDepthLimitExceeded
زمانی رخ می دهد که از حد مجاز تعداد سطوح پوشه های تودرتو فراتر رفته باشد. My Drive یک کاربر نمی تواند بیش از 100 سطح پوشه تودرتو داشته باشد. برای اطلاعات بیشتر، محدودیت عمق پوشه را ببینید.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "myDriveHierarchyDepthLimitExceeded",
"message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
}
],
"code": 403,
"message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که Drive از قرار دادن پوشهها در عمق بیش از 100 سطح جلوگیری میکند.
- اگر کاربر باید پوشه تودرتو دیگری ایجاد کند، به او دستور دهید که پوشه والد مورد نظر را دوباره سازماندهی کند تا عمق کمتر از 100 سطح داشته باشد یا از پوشه والد دیگری استفاده کند که قبلاً نیاز را برآورده می کند.
numChildrenInNonRootLimitExceeded
این خطا زمانی رخ می دهد که از محدودیت تعداد فرزندان یک پوشه (پوشه ها، فایل ها و میانبرها) فراتر رفته باشد. محدودیت 500000 مورد برای پوشه ها، فایل ها و میانبرها به طور مستقیم در یک پوشه وجود دارد. موارد تو در تو در زیر پوشه ها در این محدودیت 500000 مورد حساب نمی شوند. برای اطلاعات بیشتر درباره محدودیتهای پوشه Drive، به محدودیتهای پوشه در Google Drive مراجعه کنید.
نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "numChildrenInNonRootLimitExceeded",
"message": "The limit for this folder's number of children (files and folders) has been exceeded."
}
],
"code": 403,
"message": "The limit for this folder's number of children (files and folders) has been exceeded."
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
- به کاربر اطلاع دهید که Drive از پوشههایی با بیش از 500000 مورد جلوگیری میکند.
- اگر کاربر باید موارد بیشتری را به پوشه کامل اضافه کند، به او دستور دهید که پوشه را طوری سازماندهی کند که کمتر از 500000 مورد داشته باشد یا از پوشه مشابهی استفاده کند که قبلاً موارد کمتری دارد.
rateLimitExceeded
این خطا زمانی رخ می دهد که به سقف نرخ پروژه رسیده باشد. این محدودیت بسته به نوع درخواست متفاوت است. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"message": "Rate Limit Exceeded",
"reason": "rateLimitExceeded",
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
- سهمیه هر کاربر را در پروژه Google Cloud افزایش دهید. برای اطلاعات بیشتر، درخواست افزایش سهمیه کنید .
- درخواستهای دستهای برای بستهبندی چند تماس API در یک درخواست HTTP.
- برای امتحان مجدد درخواست از backoff نمایی استفاده کنید.
sharingRateLimitExceeded
این خطا زمانی رخ میدهد که کاربر به محدودیت اشتراکگذاری میرسد و اغلب با محدودیت ایمیل مرتبط میشود. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"message": "Rate limit exceeded. User message: \"These item(s) could not be shared because a rate limit was exceeded: filename",
"reason": "sharingRateLimitExceeded",
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
برای رفع این خطا:
- هنگام به اشتراک گذاری حجم زیاد فایل، ایمیل ارسال نکنید.
- اگر یک کاربر از طرف بسیاری از کاربران یک حساب Google Workspace درخواستهای متعددی ارائه میکند، با استفاده از پارامتر
quotaUser
یک حساب سرویس با تفویض اختیار در سطح دامنه در نظر بگیرید.
storageQuotaExceeded
این خطا زمانی رخ می دهد که کاربر به محدودیت ذخیره سازی خود برسد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"message": "The user's Drive storage quota has been exceeded.",
"reason": "storageQuotaExceeded",
}
],
"code": 403,
"message": "The user's Drive storage quota has been exceeded."
}
}
برای رفع این خطا:
محدودیتهای فضای ذخیرهسازی حساب Drive خود را مرور کنید. برای اطلاعات بیشتر، به محدودیتهای فضای ذخیرهسازی و آپلود Google Workspace مراجعه کنید.
فایلهای موجود در فضای ذخیرهسازی Google Drive خود را مدیریت کنید .
teamDriveFileLimitExceeded
این خطا زمانی رخ میدهد که کاربر تلاش میکند از محدودیت آیتم در درایو مشترک فراتر رود. هر پوشه در درایو مشترک کاربر دارای محدودیت 500000 مورد از جمله فایل ها، پوشه ها و میانبرها است. این محدودیت بر اساس تعداد موارد است، نه استفاده از فضای ذخیرهسازی. برای اطلاعات بیشتر، به محدودیتهای درایو مشترک در Google Drive مراجعه کنید.
نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "teamDriveFileLimitExceeded",
"message": "The file limit for this shared drive has been exceeded."
}
],
"code": 403,
"message": "The file limit for this shared drive has been exceeded."
}
}
برای رفع این خطا، تعداد موارد موجود در درایو مشترک را کاهش دهید. درایوهای مشترک با فایل های بسیار زیاد ممکن است سازماندهی و جستجو دشوار باشد.
teamDriveHierarchyTooDeep
یک خطای teamDriveHierarchyTooDeep
زمانی رخ می دهد که از حد مجاز تعداد سطوح پوشه تودرتو در درایو مشترک فراتر رفته باشد. درایو مشترک کاربر نمی تواند بیش از 100 سطح پوشه تودرتو داشته باشد. برای اطلاعات بیشتر، محدودیت عمق پوشه را ببینید.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "teamDriveHierarchyTooDeep",
"message": "The shared drive hierarchy depth will exceed the limit."
}
],
"code": 403,
"message": "The shared drive hierarchy depth will exceed the limit."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که درایوهای مشترک از قرار دادن پوشههایی با عمق بیش از 100 سطح جلوگیری میکند.
- اگر کاربر باید پوشه تودرتو دیگری ایجاد کند، به او دستور دهید که پوشه والد مورد نظر را دوباره سازماندهی کند تا عمق کمتر از 100 سطح داشته باشد یا از پوشه والد دیگری استفاده کند که قبلاً نیاز را برآورده می کند.
teamDriveMembershipRequired
این خطا زمانی رخ می دهد که کاربر سعی می کند به درایو مشترکی که در آن عضو نیست دسترسی پیدا کند. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "teamDriveMembershipRequired",
"message": "The attempted action requires shared drive membership."
}
],
"code": 403,
"message": "The attempted action requires shared drive membership."
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
از مدیر درایو مشترک بخواهید که شما را با مجوزهای مناسب برای اقدامی که باید انجام دهید اضافه کند.
نقشها و مجوزهای Drive را مرور کنید تا بدانید چه کسی میتواند به درایوهای مشترک دسترسی داشته باشد و آن را مدیریت کند. اطلاعات اضافی درباره سطوح دسترسی را نیز میتوانید در «ایجاد درایو مشترک» بیابید.
teamDrivesFolderMoveInNotSupported
این خطا زمانی رخ می دهد که کاربر تلاش می کند پوشه ای را از My Drive به درایو مشترک منتقل کند. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "teamDrivesFolderMoveInNotSupported",
"message": "Moving folders into shared drives is not supported."
}
],
"code": 403,
"message": "Moving folders into shared drives is not supported."
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
با استفاده از Drive API، موارد جداگانه را از پوشه به درایو مشترک منتقل کنید. پارامتر
supportsAllDrives=true
را برای نشان دادن پشتیبانی از My Drive و درایوهای مشترک تنظیم کنید.اگر باید پوشه را به درایو مشترک منتقل کنید، از رابط کاربری Drive استفاده کنید. برای اطلاعات بیشتر، به انتقال پوشه ها به درایوهای مشترک به عنوان سرپرست مراجعه کنید.
teamDrivesParentLimit
این خطا زمانی رخ می دهد که کاربر تلاش می کند بیش از یک والد را به یک مورد در درایو مشترک اضافه کند. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "teamDrivesParentLimit",
"message": "A shared drive item must have exactly one parent."
}
],
"code": 403,
"message": "A shared drive item must have exactly one parent."
}
}
برای رفع این خطا، از میانبرهای Drive برای افزودن چندین پیوند به یک فایل استفاده کنید. اگرچه یک میانبر فقط می تواند یک والد داشته باشد، یک فایل میانبر می تواند در مکان های اضافی کپی شود. برای اطلاعات بیشتر، به ایجاد میانبر برای فایل Drive مراجعه کنید.
UrlLeaseLimitExceeded
این خطا هنگام تلاش برای ذخیره داده های بازی Google Play از طریق برنامه شما رخ می دهد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "UrlLeaseLimitExceeded",
"message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
}
],
"code": 403,
"message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
}
}
برای رفع این خطا، قبل از ایجاد عکس فوری، هر بارگذاری را تکمیل یا لغو کنید.
userRateLimitExceeded
این خطا زمانی رخ می دهد که به محدودیت برای هر کاربر رسیده باشد. این ممکن است محدودیتی از کنسول Google Cloud یا محدودیتی از قسمت پشتیبان Drive باشد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceeded",
"message": "User Rate Limit Exceeded"
}
],
"code": 403,
"message": "User Rate Limit Exceeded"
}
}
برای رفع این خطا، یکی از موارد زیر را امتحان کنید:
سهمیه هر کاربر را در پروژه Google Cloud افزایش دهید. برای اطلاعات بیشتر، درخواست افزایش سهمیه کنید .
اگر یک کاربر از طرف بسیاری از کاربران یک حساب Google Workspace درخواستهای متعددی ارائه میکند، با استفاده از پارامتر
quotaUser
یک حساب سرویس با تفویض اختیار در سطح دامنه در نظر بگیرید.برای امتحان مجدد درخواست از backoff نمایی استفاده کنید.
برای اطلاعات در مورد محدودیتهای Drive API، به محدودیتهای استفاده مراجعه کنید.
خطاهای 404
این خطاها به این معنی است که منبع درخواستی در دسترس نیست یا وجود ندارد.
notFound
این خطا زمانی رخ می دهد که کاربر دسترسی خواندن به فایلی نداشته باشد یا فایل وجود نداشته باشد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found {fileId}"
}
],
"code": 404,
"message": "File not found: {fileId}"
}
}
برای رفع این خطا:
- اگر فایل در یک درایو مشترک قرار دارد و از روش
files.get
استفاده میکنید، مطمئن شوید که پارامتر querysupportsAllDrives
رویtrue
تنظیم شده است. - به کاربر اطلاع دهید که دسترسی خواندن به فایل ندارد یا فایل وجود ندارد.
- به کاربر دستور دهید با مالک فایل تماس بگیرد و درخواست مجوز برای فایل کند.
429 خطا
این خطاها به این معنی است که درخواستهای زیادی خیلی سریع به API ارسال شده است.
rateLimitExceeded
این خطا زمانی رخ می دهد که کاربر در مدت زمان مشخصی درخواست های زیادی ارسال کرده باشد. نمونه JSON زیر نمایشی از این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 429,
"message": "Rate Limit Exceeded"s
}
}
برای رفع این خطا، از backoff نمایی برای امتحان مجدد درخواست استفاده کنید.
خطاهای 500، 502، 503، 504
این خطاها زمانی رخ می دهند که یک خطای غیرمنتظره سرور هنگام پردازش درخواست رخ می دهد. مسائل مختلفی میتوانند باعث این خطاها شوند، از جمله همپوشانی زمان درخواست با درخواست دیگری یا درخواست یک اقدام پشتیبانینشده، مانند تلاش برای بهروزرسانی مجوزها برای یک صفحه در Google Sites به جای کل سایت.
در زیر لیستی از خطاهای 5xx آمده است:
- 500 خطای Backend
- دروازه بد 502
- سرویس 503 در دسترس نیست
- 504 Gateway Timeout
برای رفع این خطا، از backoff نمایی برای امتحان مجدد درخواست استفاده کنید.