رابط برنامهنویسی کاربردی گوگل درایو دو سطح از اطلاعات خطا را برمیگرداند:
- کدهای خطای HTTP و پیامهای هدر.
- یک شیء JSON در بدنه پاسخ با جزئیات اضافی که میتواند به شما در تعیین نحوه مدیریت خطا کمک کند.
برنامههای گوگل درایو باید تمام خطاهایی را که ممکن است هنگام استفاده از 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 | هنگام پردازش درخواست، خطای غیرمنتظرهای رخ میدهد. |
۴۰۰ خطا
این خطاها به این معنی است که درخواست غیرقابل قبول بوده است، که اغلب به دلیل عدم وجود پارامتر الزامی است.
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 را بررسی کرده و کد خود را متناسب با آن تنظیم کنید.
illegalKeepForeverModification
این خطا هنگام تلاش برای تنظیم یک نسخه از فایل blob که با عنوان "Keep Forever" مشخص شده است، روی false رخ میدهد. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "illegalKeepForeverModification",
"message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
}
],
"code": 400,
"message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
}
}
برای رفع این خطا، یک نسخه از فایل blob را برای همیشه حذف کنید تا تنظیمات «Keep Forever» حذف شود.
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 که فایل به آن تعلق دارد را بررسی کنید. ممکن است تنظیمات، اشتراکگذاری خارج از دامنه را ممنوع کرده باشد یا اشتراکگذاری درایو مشترک مجاز نباشد.
خطاهای ۴۰۱
این خطاها به این معنی است که درخواست حاوی توکن دسترسی معتبری نیست.
authError
این خطا زمانی رخ میدهد که توکن دسترسی مورد استفاده شما منقضی شده یا نامعتبر باشد. این خطا همچنین میتواند به دلیل عدم وجود مجوز برای محدودههای درخواستی ایجاد شود. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization",
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
برای رفع این خطا، توکن دسترسی را با استفاده از توکن بهروزرسانی بلندمدت بهروزرسانی کنید. در صورت عدم موفقیت، کاربر را از طریق جریان OAuth، همانطور که در «انتخاب محدودههای API گوگل درایو» توضیح داده شده است، هدایت کنید.
fileNotDownloadable
این خطا زمانی رخ میدهد که شما سعی میکنید از متد revisions.get به همراه پارامتر alt=media URL در یک سند 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، را مشاهده کنید، پارامتر
alt=mediaURL را حذف کنید. - از متد
files.exportبرای خروجی گرفتن از محتوای بایت سند Google Workspace استفاده کنید. برای اطلاعات بیشتر، به Export Google Workspace document content مراجعه کنید.
خطاهای ۴۰۳
این خطاها به این معنی است که از حد مجاز استفاده فراتر رفته است یا کاربر امتیازات لازم را ندارد. برای تعیین علت، فیلد reason JSON برگردانده شده را ارزیابی کنید.
برای اطلاعات بیشتر در مورد محدودیتهای API درایو، به محدودیتهای استفاده مراجعه کنید. برای اطلاعات بیشتر در مورد محدودیتهای پوشه درایو، به محدودیتهای فایل و پوشه مراجعه کنید.
activeItemCreationLimitExceeded
خطای activeItemCreationLimitExceeded زمانی رخ میدهد که محدودیت تعداد اقلام ایجاد شده برای هر حساب کاربری از حد مجاز فراتر رفته باشد. هر کاربر میتواند تا ۵۰۰ میلیون قلم کالا توسط یک حساب کاربری ایجاد کند. برای اطلاعات بیشتر، به محدودیت تعداد اقلام کاربر مراجعه کنید.
{
"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."
}
}
برای رفع این خطا:
به کاربر اطلاع دهید که درایو از ایجاد بیش از ۵۰۰ میلیون مورد توسط حسابها جلوگیری میکند.
اگر کاربر باید در همین حساب کاربری آیتمهایی ایجاد کند، به او دستور دهید که برخی از اشیا را بهطور دائم حذف کند. در غیر این صورت، میتواند از حساب کاربری دیگری که از قبل این الزام را برآورده میکند، استفاده کند.
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}."
}
}
برای رفع این خطا، هر یک از موارد زیر را امتحان کنید:
- انتخابگر گوگل درایو را باز کنید و از کاربر بخواهید فایل را باز کند.
- به کاربر دستور دهید که فایل را با استفاده از منوی زمینه «باز کردن با» در رابط کاربری 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 را بازیابی کنید تا ببینید آیا مجوزهای این آیتم درایو مشترک به ارث رسیدهاند یا مستقیماً اعمال میشوند.
dailyLimitExceeded
این خطا زمانی رخ میدهد که محدودیت API برای پروژه شما تکمیل شده باشد. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceeded",
"message": "Daily Limit Exceeded"
}
],
"code": 403,
"message": "Daily Limit Exceeded"
}
}
این خطا زمانی ظاهر میشود که صاحب برنامه، محدودیت سهمیهای برای استفاده از یک منبع خاص تعیین کرده باشد. برای رفع این خطا، هرگونه محدودیت استفاده برای سهمیه "پرسوجوها در روز" را حذف کنید .
domainPolicy
این خطا زمانی رخ میدهد که سیاست دامنه کاربر اجازه دسترسی به درایو توسط برنامه شما را نمیدهد. نمونه 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."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که دامنه به برنامه شما اجازه دسترسی به فایلهای موجود در درایو را نمیدهد.
- به کاربر دستور دهید تا برای درخواست دسترسی به برنامه شما با مدیر دامنه تماس بگیرد.
downloadRestrictedForRevision
این خطا زمانی رخ میدهد که کاربر نمیتواند یک نسخه از فایل blob را دانلود کند. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "download_restricted_for_revision",
"message": "This revision cannot be downloaded by the authenticated user."
}
],
"code": 403,
"message": "This revision cannot be downloaded by the authenticated user."
}
}
برای رفع این خطا، به کاربر اطلاع دهید که تنها راه دانلود نسخههای فایل blob این است که آنها به صورت "Keep Forever" علامتگذاری شده باشند. برای اطلاعات بیشتر، به بخش "مشخص کردن نسخهها برای ذخیره از حذف خودکار" مراجعه کنید.
fileNotExportable
این خطا زمانی رخ میدهد که کاربر سعی در خروجی گرفتن از فایل Google Vids داشته باشد. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotExportable",
"message": "Google Vids does not support files.export. Use files.download with Vids files."
}
],
"code": 403,
"message": "Google Vids does not support files.export. Use files.download with Vids files."
}
}
برای رفع این خطا، به کاربر اطلاع دهید که فایلهای Google Vids باید با روش files.download دانلود شوند، زیرا روش files.export پشتیبانی نمیشود. برای اطلاعات بیشتر، به «دانلود و خروجی گرفتن فایلها» مراجعه کنید.
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."
}
}
برای رفع این خطا، از یک حساب کاربری مدیر (administrator) در هر دو درایو مشترک مبدا و مقصد استفاده کنید.
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 زمانی رخ میدهد که محدودیت تعداد سطوح پوشههای تو در تو از حد مجاز فراتر رفته باشد. درایو من یک کاربر نمیتواند بیش از ۱۰۰ سطح پوشه تو در تو داشته باشد. برای اطلاعات بیشتر، به محدودیت عمق پوشه مراجعه کنید.
{
"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/workspace/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/workspace/drive/api/guides/handle-errors#nested-folder-levels."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که درایو از قرار دادن پوشهها در عمق بیش از ۱۰۰ سطح جلوگیری میکند.
- اگر کاربر باید یک پوشه تو در تو دیگر ایجاد کند، به او دستور دهید که پوشه والد مورد نظر را طوری سازماندهی کند که عمق آن کمتر از ۱۰۰ سطح باشد یا از یک پوشه والد متفاوت که از قبل این نیاز را برآورده میکند، استفاده کند.
numChildrenInNonRootLimitExceeded
این خطا زمانی رخ میدهد که تعداد فرزندان یک پوشه (پوشهها، فایلها و میانبرها) از حد مجاز فراتر رفته باشد. محدودیت ۵۰۰۰۰۰ مورد برای پوشهها، فایلها و میانبرهای مستقیم در یک پوشه وجود دارد. مواردی که در زیرپوشهها قرار دارند، جزو این محدودیت ۵۰۰۰۰۰ مورد محسوب نمیشوند. برای اطلاعات بیشتر در مورد محدودیتهای پوشههای درایو، به محدودیتهای پوشه در گوگل درایو مراجعه کنید.
نمونه 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."
}
}
برای رفع این خطا، هر یک از موارد زیر را امتحان کنید:
- به کاربر اطلاع دهید که درایو از پوشههایی با بیش از ۵۰۰۰۰۰ مورد جلوگیری میکند.
- اگر کاربر باید موارد بیشتری را به کل پوشه اضافه کند، به او دستور دهید که پوشه را طوری سازماندهی مجدد کند که کمتر از ۵۰۰۰۰۰ مورد داشته باشد یا از پوشه مشابهی استفاده کند که از قبل موارد کمتری داشته باشد.
rateLimitExceeded
این خطا زمانی رخ میدهد که محدودیت سرعت پروژه تکمیل شده باشد. این محدودیت بسته به نوع درخواست متفاوت است. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"message": "Rate Limit Exceeded",
"reason": "rateLimitExceeded",
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
برای رفع این خطا، هر یک از موارد زیر را امتحان کنید:
- سهمیه هر کاربر را در پروژه Google Cloud افزایش دهید. برای اطلاعات بیشتر، درخواست افزایش سهمیه دهید .
- درخواستهای دستهای برای دستهبندی چندین فراخوانی API در یک درخواست HTTP.
- برای تکرار درخواست از روش برگشت نمایی (exponential 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 مراجعه کنید.
فضای ذخیرهسازی خود را در Drive، Gmail و Google Photos مدیریت کنید .
teamDriveFileLimitExceeded
این خطا زمانی رخ میدهد که کاربر سعی میکند از محدودیت سختگیرانهی تعداد آیتمها در یک درایو مشترک فراتر رود. هر پوشه در درایو مشترک کاربر محدودیت ۵۰۰۰۰۰ آیتم، شامل فایلها، پوشهها و میانبرها، دارد. این محدودیت بر اساس تعداد آیتمها است، نه میزان استفاده از فضای ذخیرهسازی. برای اطلاعات بیشتر، به محدودیتهای درایو مشترک در گوگل درایو مراجعه کنید.
نمونه 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 زمانی رخ میدهد که محدودیت تعداد سطوح پوشههای تو در تو در درایو اشتراکی از حد مجاز فراتر رفته باشد. درایو اشتراکی یک کاربر نمیتواند بیش از ۱۰۰ سطح پوشه تو در تو داشته باشد. برای اطلاعات بیشتر، به محدودیت عمق پوشه مراجعه کنید.
{
"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."
}
}
برای رفع این خطا:
- به کاربر اطلاع دهید که درایوهای اشتراکی از قرار دادن پوشهها در عمق بیش از ۱۰۰ سطح جلوگیری میکنند.
- اگر کاربر باید یک پوشه تو در تو دیگر ایجاد کند، به او دستور دهید که پوشه والد مورد نظر را طوری سازماندهی کند که عمق آن کمتر از ۱۰۰ سطح باشد یا از یک پوشه والد متفاوت که از قبل این نیاز را برآورده میکند، استفاده کند.
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."
}
}
برای رفع این خطا، از میانبرهای درایو برای اضافه کردن چندین لینک به یک فایل استفاده کنید. اگرچه یک میانبر فقط میتواند یک والد داشته باشد، اما میتوان یک فایل میانبر را در مکانهای اضافی کپی کرد. برای اطلاعات بیشتر، به ایجاد میانبر برای یک فایل درایو مراجعه کنید.
UrlLeaseLimitExceeded
این خطا هنگام تلاش برای ذخیره دادههای بازی گوگل پلی از طریق برنامه شما رخ میدهد. نمونه 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 یا محدودیتی از backend 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را در نظر بگیرید.برای تکرار درخواست از روش برگشت نمایی (exponential backoff) استفاده کنید.
برای اطلاعات بیشتر در مورد محدودیتهای Drive API، به محدودیتهای استفاده مراجعه کنید.
خطاهای ۴۰۴
این خطاها به این معنی هستند که منبع درخواستی قابل دسترسی نیست یا وجود ندارد.
notFound
این خطا زمانی رخ میدهد که کاربر دسترسی خواندن به یک فایل را ندارد، یا فایل وجود ندارد. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found {fileId}"
}
],
"code": 404,
"message": "File not found: {fileId}"
}
}
برای رفع این خطا:
- اگر فایل در یک درایو مشترک قرار دارد و از متد
files.getاستفاده میکنید، مطمئن شوید که پارامتر پرسوجویsupportsAllDrivesرویtrueتنظیم شده است. - به کاربر اطلاع دهید که دسترسی خواندن فایل را ندارد یا فایل وجود ندارد.
- به کاربر دستور دهید تا با مالک فایل تماس بگیرد و درخواست مجوز دسترسی به فایل را بدهد.
۴۲۹ خطا
این خطاها به این معنی است که درخواستهای بسیار زیادی به سرعت به API ارسال شدهاند.
rateLimitExceeded
این خطا زمانی رخ میدهد که کاربر در یک بازه زمانی مشخص درخواستهای زیادی ارسال کرده باشد. نمونه JSON زیر نمایانگر این خطا است:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 429,
"message": "Rate Limit Exceeded"s
}
}
برای رفع این خطا، از تابع برگشت نمایی (exponential backoff) برای تکرار درخواست استفاده کنید.
خطاهای ۵۰۰، ۵۰۲، ۵۰۳، ۵۰۴
این خطاها زمانی رخ میدهند که هنگام پردازش درخواست، یک خطای غیرمنتظره از سمت سرور رخ دهد. مسائل مختلفی میتوانند باعث این خطاها شوند، از جمله همپوشانی زمانبندی یک درخواست با درخواست دیگر یا درخواست برای یک اقدام پشتیبانی نشده، مانند تلاش برای بهروزرسانی مجوزها برای یک صفحه واحد در Google Sites به جای کل سایت.
لیست خطاهای 5xx به شرح زیر است:
- خطای ۵۰۰ در پنل مدیریت
- ۵۰۲ دروازه بد
- سرویس ۵۰۳ در دسترس نیست
- وقفه زمانی دروازه ۵۰۴
برای رفع این خطا، از تابع برگشت نمایی (exponential backoff) برای تکرار درخواست استفاده کنید.