একটি দীর্ঘ-চলমান অপারেশন (LRO) হলো এমন একটি এপিআই মেথড যা একটি এপিআই রেসপন্সের জন্য উপযুক্ত সময়ের চেয়ে বেশি সময় নেয়। সাধারণত, কাজটি চলার সময় কলিং থ্রেডটিকে খোলা রাখা উচিত নয়, কারণ এটি ব্যবহারকারীর জন্য একটি খারাপ অভিজ্ঞতা তৈরি করে। এর পরিবর্তে, ব্যবহারকারীকে কোনো ধরনের প্রমিজ রিটার্ন করা এবং তাদেরকে পরে আবার চেক করার সুযোগ দেওয়া শ্রেয়।
আপনি যখনই ড্রাইভ এপিআই বা এর ক্লায়েন্ট লাইব্রেরির মাধ্যমে কোনো ফাইলের বিষয়বস্তু ডাউনলোড করার জন্য files রিসোর্সের download মেথডটি কল করেন, তখন গুগল ড্রাইভ এপিআই একটি LRO রিটার্ন করে।
এই মেথডটি ক্লায়েন্টকে একটি operations রিসোর্স ফেরত দেয়। আপনি get মেথডের মাধ্যমে অপারেশনটি পোল করে অ্যাসিঙ্ক্রোনাসভাবে এপিআই মেথডের স্ট্যাটাস জানার জন্য এই operations রিসোর্সটি ব্যবহার করতে পারেন। ড্রাইভ এপিআই-এর LRO-গুলো গুগল ক্লাউড LRO ডিজাইন প্যাটার্ন অনুসরণ করে।
আরও তথ্যের জন্য, দীর্ঘমেয়াদী কার্যক্রম দেখুন।
প্রক্রিয়ার সংক্ষিপ্ত বিবরণ
নিম্নলিখিত ডায়াগ্রামটিতে file.download মেথডটি কীভাবে কাজ করে তার প্রধান ধাপগুলো দেখানো হয়েছে।
files.downloadকল করুন : যখন আপনার অ্যাপ এইdownloadমেথডটি কল করে, তখন এটি ফাইলটির জন্য Drive API ডাউনলোড রিকোয়েস্ট চালু করে। আরও তথ্যের জন্য, ফাইল ডাউনলোড দেখুন।অনুমতির জন্য অনুরোধ : এই অনুরোধটি Drive API-তে প্রমাণীকরণের তথ্য পাঠায়। যদি আপনার অ্যাপের এমন কোনো ব্যবহারকারীর প্রমাণীকরণ ব্যবহার করে Drive API কল করার প্রয়োজন হয়, যা এখনও মঞ্জুর করা হয়নি, তবে এটি ব্যবহারকারীকে সাইন ইন করতে অনুরোধ করে। প্রমাণীকরণ সেট আপ করার সময় আপনি যে স্কোপগুলি নির্দিষ্ট করেন, আপনার অ্যাপ সেই স্কোপগুলির জন্যও অ্যাক্সেসের অনুরোধ করে।
ডাউনলোড শুরু করুন : ফাইল ডাউনলোড শুরু করার জন্য একটি ড্রাইভ এপিআই (Drive API) অনুরোধ করা হয়। এই অনুরোধটি গুগল ভিডস (Google Vids) বা অন্য কোনো গুগল ওয়ার্কস্পেস (Google Workspace) কন্টেন্টের জন্য করা হতে পারে।
LRO শুরু করুন : এটি একটি দীর্ঘ প্রক্রিয়া যা ডাউনলোড প্রক্রিয়াটি পরিচালনা করে।
অপেক্ষাধীন অপারেশন ফেরত দিন : ড্রাইভ এপিআই একটি অপেক্ষাধীন অপারেশন ফেরত দেয়, যাতে অনুরোধকারী ব্যবহারকারীর তথ্য এবং বিভিন্ন ফাইল মেটাডেটা ফিল্ড অন্তর্ভুক্ত থাকে।
প্রাথমিক অপেক্ষাধীন অবস্থা : আপনার অ্যাপ
done=nullএর একটি প্রাথমিক অপেক্ষাধীন অবস্থা সহ অপেক্ষাধীন অপারেশনটি গ্রহণ করে। এটি বোঝায় যে ফাইলটি এখনও ডাউনলোডের জন্য প্রস্তুত নয় এবং অপারেশনটির অবস্থা অপেক্ষাধীন।operations.getকল করুন এবং ফলাফল যাচাই করুন : আপনার অ্যাপ একটি দীর্ঘ-চলমান অপারেশনের ফলাফল পোল করতে এবং সর্বশেষ অবস্থা জানতে প্রস্তাবিত বিরতিতে `getকল করে। যদিdone=falseএর পেন্ডিং অবস্থা ফেরত আসে, তবে অপারেশনটি `done=trueএর সম্পূর্ণ অবস্থা ফেরত না দেওয়া পর্যন্ত আপনার অ্যাপকে পোল করতে থাকতে হবে। বড় ফাইলের ক্ষেত্রে, একাধিকবার পোল করার প্রয়োজন হতে পারে। আরও তথ্যের জন্য, “একটি দীর্ঘ-চলমান অপারেশন সম্পর্কে বিস্তারিত জানুন” দেখুন।অপেক্ষাধীন অবস্থা যাচাই করুন : যদি LRO থেকে
done=trueঅপেক্ষাধীন অবস্থাটি ফেরত আসে, তবে এটি বোঝায় যে ফাইলটি ডাউনলোডের জন্য প্রস্তুত এবং অপারেশনটির অবস্থা সম্পূর্ণ হয়েছে।ডাউনলোড ইউআরআই সহ সম্পন্ন অপারেশন ফেরত দিন : এলআরও (LRO) সম্পন্ন হয়ে গেলে, ড্রাইভ এপিআই (Drive API) ডাউনলোড ইউআরআই ফেরত দেয় এবং ফাইলটি তখন ব্যবহারকারীর জন্য উপলব্ধ হয়।
ফাইলগুলি ডাউনলোড করুন
দীর্ঘ সময় ধরে চলা কোনো অপারেশনের অধীনে থাকা কন্টেন্ট ডাউনলোড করতে, files রিসোর্সের download মেথডটি ব্যবহার করুন। এই মেথডটি file_id , mime_type এবং revision_id প্যারামিটারগুলো গ্রহণ করে।
আবশ্যক।
file_idপাথ প্যারামিটারটি হলো ডাউনলোড করার ফাইলের আইডি।ঐচ্ছিক।
mime_typeকোয়েরি প্যারামিটারটি নির্দেশ করে যে মেথডটি কোন MIME টাইপ ব্যবহার করবে। এটি শুধুমাত্র নন-ব্লব মিডিয়া কন্টেন্ট (যেমন গুগল ওয়ার্কস্পেস ডকুমেন্ট) ডাউনলোড করার সময় উপলব্ধ থাকে। সমর্থিত MIME টাইপগুলোর সম্পূর্ণ তালিকার জন্য, “গুগল ওয়ার্কস্পেস ডকুমেন্টের জন্য MIME টাইপ এক্সপোর্ট করুন” দেখুন।MIME টাইপ সেট করা না থাকলে, Google Workspace ডকুমেন্টটি একটি ডিফল্ট MIME টাইপ সহ ডাউনলোড হয়। আরও তথ্যের জন্য, ডিফল্ট MIME টাইপসমূহ দেখুন।
ঐচ্ছিক।
revision_idকোয়েরি প্যারামিটারটি হলো ডাউনলোড করার ফাইলের রিভিশন আইডি। এটি শুধুমাত্র ব্লব ফাইল, গুগল ডক্স এবং গুগল শিটস ডাউনলোড করার সময় উপলব্ধ। অসমর্থিত ফাইলের কোনো নির্দিষ্ট রিভিশন ডাউনলোড করার সময় এটিINVALID_ARGUMENTএরর কোড রিটার্ন করে।
MP4 ফরম্যাটে ভিডস ফাইল ডাউনলোড করার একমাত্র উপায় হলো download পদ্ধতি এবং এটি সাধারণত বেশিরভাগ ভিডিও ফাইল ডাউনলোড করার জন্য সবচেয়ে উপযুক্ত। আপনি যদি গুগল ভিডস ফাইল এক্সপোর্ট করার চেষ্টা করেন, তাহলে আপনি একটি fileNotExportable ত্রুটি পাবেন।
গুগল ডক্স বা শীটসের জন্য তৈরি করা ডাউনলোড লিঙ্কগুলো প্রথমে আপনাকে অন্য লিঙ্কে পাঠিয়ে দেয়। ফাইলটি ডাউনলোড করতে নতুন লিঙ্কটিতে ক্লিক করুন।
LRO শুরু করার জন্য download পদ্ধতির অনুরোধ এবং চূড়ান্ত ডাউনলোড URI আনার অনুরোধ, উভয় ক্ষেত্রেই রিসোর্স কী ব্যবহার করা উচিত। আরও তথ্যের জন্য, রিসোর্স কী ব্যবহার করে লিঙ্ক-শেয়ার করা ড্রাইভ ফাইল অ্যাক্সেস দেখুন।
অনুরোধ প্রোটোকলটি এখানে দেখানো হলো।
POST https://www.googleapis.com/drive/v3/files/{FILE_ID}/download যে ফাইলটি আপনি ডাউনলোড করতে চান, তার fileId দিয়ে FILE_ID প্রতিস্থাপন করুন।
ডিফল্ট MIME প্রকারগুলি
নন-ব্লব কন্টেন্ট ডাউনলোড করার সময় যদি কোনো MIME টাইপ সেট করা না থাকে, তাহলে নিম্নলিখিত ডিফল্ট MIME টাইপগুলো নির্ধারিত হয়:
| নথির ধরন | ফর্ম্যাট | MIME টাইপ | ফাইল এক্সটেনশন |
|---|---|---|---|
| গুগল অ্যাপস স্ক্রিপ্ট | JSON | application/vnd.google-apps.script+json | .json |
| গুগল ডক্স | মাইক্রোসফট ওয়ার্ড | application/vnd.openxmlformats-officedocument.wordprocessingml.document | .docx |
| গুগল ড্রয়িংস | পিএনজি | ছবি/পিএনজি | .png |
| গুগল ফর্ম | জিপ | অ্যাপ্লিকেশন/জিপ | .zip |
| গুগল শীটস | মাইক্রোসফট এক্সেল | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | .xlsx |
| গুগল সাইটস | কাঁচা পাঠ্য | পাঠ্য/কাঁচা | .txt |
| গুগল স্লাইডস | মাইক্রোসফট পাওয়ারপয়েন্ট | application/vnd.openxmlformats-officedocument.presentationml.presentation | .pptx |
| গুগল ভিডিও | এমপি৪ | ভিডিও/এমপি৪ | .mp4 |
| জ্যামবোর্ড | পিডিএফ | অ্যাপ্লিকেশন/পিডিএফ |
প্রতিক্রিয়া ডাউনলোড করুন
download মেথডটি কল করা হলে, রেসপন্স বডিতে একটি রিসোর্স থাকে যা একটি দীর্ঘ-চলমান অপারেশনকে নির্দেশ করে। মেথডটি সাধারণত ফাইলের বিষয়বস্তু ডাউনলোড করার জন্য একটি লিঙ্ক রিটার্ন করে।
{
"done": true,
"metadata": {
"@type": "type.googleapis.com/google.apps.drive.v3.DownloadFileMetadata",
"resourceKey": "RESOURCE_KEY"
},
"name": "NAME",
"response": {
"@type": "type.googleapis.com/google.apps.drive.v3.DownloadFileResponse",
"downloadUri": "DOWNLOAD_URI",
"partialDownloadAllowed": false
}
}
এই আউটপুটে নিম্নলিখিত মানগুলি অন্তর্ভুক্ত রয়েছে:
রিসোর্স RESOURCE_KEY : একটি রিসোর্স কী আপনার ফাইলকে অনাকাঙ্ক্ষিত অ্যাক্সেস থেকে রক্ষা করতে সাহায্য করে। আরও তথ্যের জন্য, রিসোর্স কী ব্যবহার করে লিঙ্ক-শেয়ার করা ড্রাইভ ফাইল অ্যাক্সেস দেখুন।
NAME : সার্ভার কর্তৃক নির্ধারিত নাম।
DOWNLOAD_URI : ফাইলটির চূড়ান্ত ডাউনলোড ইউআরআই।
উল্লেখ্য যে, partialDownloadAllowed ফিল্ডটি নির্দেশ করে আংশিক ডাউনলোডের অনুমতি আছে কিনা এবং ব্লব ফাইলের কন্টেন্ট ডাউনলোড করার সময় এর true হয়।
একটি দীর্ঘস্থায়ী কার্যক্রম সম্পর্কে বিস্তারিত জানুন।
দীর্ঘ-চলমান অপারেশন হলো এমন মেথড কল যা সম্পন্ন হতে যথেষ্ট সময় নিতে পারে। সাধারণত, নতুন তৈরি করা ডাউনলোড অপারেশনগুলো প্রাথমিকভাবে একটি পেন্ডিং অবস্থায় ( done=null ) ফেরত আসে, বিশেষ করে ভিডিও ফাইলের ক্ষেত্রে।
আপনি Drive API দ্বারা প্রদত্ত operations রিসোর্সটি ব্যবহার করে, সার্ভার কর্তৃক নির্ধারিত অনন্য নামটি অন্তর্ভুক্ত করার মাধ্যমে প্রসেসিংরত LRO-এর স্ট্যাটাস পরীক্ষা করতে পারেন।
get মেথডটি একটি দীর্ঘ সময় ধরে চলা অপারেশনের সর্বশেষ অবস্থা অ্যাসিঙ্ক্রোনাসভাবে সংগ্রহ করে। ক্লায়েন্টরা এপিআই সার্ভিসের সুপারিশ অনুযায়ী নির্দিষ্ট বিরতিতে অপারেশনের ফলাফল পোল করার জন্য এই মেথডটি ব্যবহার করতে পারে।
জরিপ একটি দীর্ঘস্থায়ী কার্যক্রম
একটি উপলব্ধ LRO পোল করতে, অপারেশনটি শেষ না হওয়া পর্যন্ত বারবার get মেথডটি কল করুন। প্রতিটি পোল অনুরোধের মধ্যে একটি এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন, যেমন ১০ সেকেন্ড।
একটি LRO ন্যূনতম ১২ ঘন্টার জন্য উপলব্ধ থাকে, তবে কিছু ক্ষেত্রে এটি আরও বেশি সময় ধরে থাকতে পারে। এই সময়কাল পরিবর্তন সাপেক্ষ এবং ফাইলের প্রকারভেদে ভিন্ন হতে পারে। রিসোর্সটির মেয়াদ শেষ হয়ে গেলে, নতুন করে download জন্য অনুরোধ করা আবশ্যক।
যেকোনো get অনুরোধের জন্য রিসোর্স কী ব্যবহার করা উচিত। আরও তথ্যের জন্য, ‘রিসোর্স কী ব্যবহার করে লিঙ্ক-শেয়ার করা ড্রাইভ ফাইল অ্যাক্সেস করুন ’ দেখুন।
অনুরোধ প্রোটোকলগুলো এখানে দেখানো হলো।
মেথড কল
operations.get(name='NAME');
download মেথড অনুরোধের প্রতিক্রিয়ায় দেখানো অপারেশনটির সার্ভার-নির্ধারিত নাম দিয়ে NAME প্রতিস্থাপন করুন।
কার্ল
curl -i -H \
'Authorization: Bearer $(gcloud auth print-access-token)" \
'https://googleapis.com/drive/v3/operations/NAME?alt=json'
download মেথড অনুরোধের প্রতিক্রিয়ায় দেখানো অপারেশনটির সার্ভার-নির্ধারিত নাম দিয়ে NAME প্রতিস্থাপন করুন।
এই কমান্ডটি /drive/v3/operations/ NAME পাথটি ব্যবহার করে।
মনে রাখবেন যে name শুধুমাত্র download অনুরোধের প্রতিক্রিয়াতেই ফেরত দেওয়া হয়। এটি পুনরুদ্ধার করার অন্য কোনো উপায় নেই, কারণ ড্রাইভ এপিআই ' list পদ্ধতি সমর্থন করে না। যদি name মানটি হারিয়ে যায়, তবে আপনাকে অবশ্যই download ' পদ্ধতির 'request' পুনরায় কল করে একটি নতুন প্রতিক্রিয়া তৈরি করতে হবে।
একটি get রিকোয়েস্টের রেসপন্সে একটি রিসোর্স থাকে যা একটি দীর্ঘ-চলমান অপারেশনকে প্রতিনিধিত্ব করে। আরও তথ্যের জন্য, ‘ডাউনলোড রেসপন্স’ দেখুন।
যখন প্রতিক্রিয়ায় একটি সম্পন্ন অবস্থা ( done=true ) থাকে, তখন দীর্ঘ সময় ধরে চলা অপারেশনটি শেষ হয়ে যায়।
একটি সংস্করণ ডাউনলোড করুন
আপনি সর্বশেষ রিভিশনটি ডাউনলোড করতে files রিসোর্সের headRevisionId ফিল্ডের মান ব্যবহার করতে পারেন। এটি আপনার পূর্বে পুনরুদ্ধার করা ফাইলের মেটাডেটার সাথে সঙ্গতিপূর্ণ রিভিশনটি নিয়ে আসে। ক্লাউডে এখনও সংরক্ষিত ফাইলটির সমস্ত পূর্ববর্তী রিভিশনের ডেটা ডাউনলোড করতে, আপনি fileId প্যারামিটার সহ revisions রিসোর্সের list মেথডটি কল করতে পারেন। এটি ফাইলের সমস্ত revisionIds ফেরত দেয়।
ব্লব ফাইলের রিভিশন কন্টেন্ট ডাউনলোড করতে হলে, আপনাকে ডাউনলোড করার ফাইলের আইডি, রিভিশনের আইডি এবং alt=media URL প্যারামিটার সহ revisions রিসোর্সের get মেথডটি কল করতে হবে। alt=media URL প্যারামিটারটি সার্ভারকে জানিয়ে দেয় যে, একটি বিকল্প রেসপন্স ফরম্যাট হিসেবে কন্টেন্ট ডাউনলোডের অনুরোধ করা হচ্ছে।
Google Docs, Sheets, Slides, এবং Vids-এর রিভিশনগুলো alt=media URL-সহ get মেথড ব্যবহার করে ডাউনলোড করা যায় না। অন্যথায়, এটি একটি fileNotDownloadable এরর তৈরি করে।
alt=media URL প্যারামিটারটি একটি সিস্টেম প্যারামিটার যা সমস্ত গুগল REST API-তে উপলব্ধ। আপনি যদি Drive API-এর জন্য কোনো ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনাকে এই প্যারামিটারটি স্পষ্টভাবে সেট করতে হবে না।
অনুরোধ প্রোটোকলটি এখানে দেখানো হলো।
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaনিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- FILE_ID : যে ফাইলটি আপনি ডাউনলোড করতে চান তার
fileId। - REVISION_ID : যে রিভিশনটি আপনি ডাউনলোড করতে চান, এটি তার
revisionId।
গুগল ডক্স, ড্রয়িংস এবং স্লাইডস-এর রিভিশন নম্বরগুলো স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়। তবে, রিভিশন মুছে ফেলা হলে নম্বরগুলোর ধারায় ফাঁক তৈরি হতে পারে, তাই রিভিশন খুঁজে বের করার জন্য ক্রমিক নম্বরের উপর নির্ভর করা উচিত নয়।
LRO-গুলির সমস্যা সমাধান করুন
যখন কোনো LRO ব্যর্থ হয়, তখন তার প্রতিক্রিয়ায় একটি প্রমিত গুগল ক্লাউড ত্রুটি কোড অন্তর্ভুক্ত থাকে।
নিম্নলিখিত সারণীতে প্রতিটি ত্রুটি কোড, সংশ্লিষ্ট HTTP স্ট্যাটাস কোড, একটি বিবরণ এবং ত্রুটি কোডটি কীভাবে সমাধান করা যায় তার জন্য একটি সুপারিশ দেখানো হয়েছে। অনেক ত্রুটির ক্ষেত্রে, এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করে অনুরোধটি পুনরায় চেষ্টা করার পরামর্শ দেওয়া হয়।
এই এরর মডেল এবং এটি নিয়ে কীভাবে কাজ করতে হয়, সে সম্পর্কে আপনি এপিআই ডিজাইন গাইড- এ আরও পড়তে পারেন।
| কোড | এনাম | HTTP স্ট্যাটাস কোড | বর্ণনা | সুপারিশকৃত পদক্ষেপ |
|---|---|---|---|---|
| ১ | CANCELLED | 499 Client Closed Request | অপারেশনটি বাতিল করা হয়েছিল, সাধারণত ফোনকারীর দ্বারাই। | অপারেশনটি পুনরায় চালান। |
| ২ | UNKNOWN | 500 Internal Server Error | অন্য কোনো অ্যাড্রেস স্পেস থেকে প্রাপ্ত Status ভ্যালুটি যদি এমন কোনো এরর স্পেসের অন্তর্গত হয় যা এই অ্যাড্রেস স্পেসে পরিচিত নয়, তাহলে এই এররটি ফেরত আসতে পারে। যদি এপিআই এররটি পর্যাপ্ত তথ্য ফেরত না দেয়, তবে এররটি এই এররে রূপান্তরিত হতে পারে। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। |
| ৩ | INVALID_ARGUMENT | 400 Bad Request | ক্লায়েন্ট একটি অবৈধ আর্গুমেন্ট নির্দিষ্ট করেছে। এই ত্রুটিটি FAILED_PRECONDITION থেকে ভিন্ন। INVALID_ARGUMENT এমন আর্গুমেন্ট নির্দেশ করে যা সিস্টেমের অবস্থা নির্বিশেষে সমস্যাযুক্ত, যেমন একটি ত্রুটিপূর্ণ ফাইলের নাম। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ৪ | DEADLINE_EXCEEDED | 504 Gateway Timeout | অপারেশনটি সম্পন্ন হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। যেসব অপারেশন সিস্টেমের অবস্থা পরিবর্তন করে, সেগুলো সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি প্রদর্শিত হতে পারে। উদাহরণস্বরূপ, সার্ভার থেকে একটি সফল প্রতিক্রিয়া আসতে এতটা দেরি হতে পারে যে সময়সীমা শেষ হয়ে গেছে। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। |
| ৫ | NOT_FOUND | 404 Not Found | অনুরোধকৃত কোনো সত্তা, যেমন একটি FHIR রিসোর্স, খুঁজে পাওয়া যায়নি। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ৬ | ALREADY_EXISTS | 409 Conflict | ক্লায়েন্ট যে সত্তাটি তৈরি করার চেষ্টা করেছে, যেমন একটি DICOM ইনস্ট্যান্স, সেটি ইতিমধ্যেই বিদ্যমান। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ৭ | PERMISSION_DENIED | 403 Forbidden | আহ্বানকারীর নির্দিষ্ট অপারেশনটি সম্পাদন করার অনুমতি নেই। এই ত্রুটি কোডটি বোঝায় না যে অনুরোধটি বৈধ, অনুরোধকৃত সত্তাটির অস্তিত্ব আছে, বা এটি অন্যান্য পূর্বশর্ত পূরণ করে। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ৮ | RESOURCE_EXHAUSTED | 429 Too Many Requests | কিছু সংস্থান নিঃশেষ হয়ে গেছে, যেমন প্রকল্প-ভিত্তিক কোটা। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। সময়ের সাথে সাথে কোটা উপলব্ধ হতে পারে। |
| ৯ | FAILED_PRECONDITION | 400 Bad Request | অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি সম্পাদনের জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই। উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয়, অথবা কোনো নন-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়েছে। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ১০ | ABORTED | 409 Conflict | অপারেশনটি বাতিল করা হয়েছিল, সাধারণত কনকারেন্সি সংক্রান্ত কোনো সমস্যার কারণে, যেমন সিকোয়েন্সার চেক ব্যর্থতা বা ট্রানজ্যাকশন বাতিল হওয়া। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। |
| ১১ | OUT_OF_RANGE | 400 Bad Request | অপারেশনটি বৈধ সীমার বাইরে করার চেষ্টা করা হয়েছিল, যেমন ফাইলের শেষ প্রান্তের পর খোঁজা বা পড়া। INVALID_ARGUMENT মতো নয়, এই ত্রুটিটি এমন একটি সমস্যা নির্দেশ করে যা সিস্টেমের অবস্থা পরিবর্তন করলে সমাধান হতে পারে। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |
| ১২ | UNIMPLEMENTED | 501 Not Implemented | অপারেশনটি ড্রাইভ এপিআই-তে বাস্তবায়িত বা সমর্থিত/সক্রিয় করা নেই। | পুনরায় চেষ্টা করবেন না। |
| ১৩ | INTERNAL | 500 Internal Server Error | অভ্যন্তরীণ ত্রুটি। এটি নির্দেশ করে যে অন্তর্নিহিত সিস্টেমে প্রক্রিয়াকরণের সময় একটি অপ্রত্যাশিত ত্রুটি দেখা দিয়েছে। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। |
| ১৪ | UNAVAILABLE | 503 Service Unavailable | ড্রাইভ এপিআই (Drive API) অনুপলব্ধ। এটি সম্ভবত একটি সাময়িক অবস্থা, যা এক্সপোনেনশিয়াল ব্যাকঅফ (exponential backoff) সহ পুনরায় চেষ্টা করে ঠিক করা যেতে পারে। মনে রাখবেন যে, নন-আইডেমপোটেন্ট (non-idempotent) অপারেশনগুলো পুনরায় চেষ্টা করা সবসময় নিরাপদ নয়। | এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করুন। |
| ১৫ | DATA_LOSS | 500 Internal Server Error | অপূরণীয় ডেটা ক্ষতি বা বিকৃতি। | আপনার সিস্টেম অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। ডেটা নষ্ট বা বিকৃত হলে সিস্টেম অ্যাডমিনিস্ট্রেটর একজন সাপোর্ট প্রতিনিধির সাথে যোগাযোগ করতে চাইতে পারেন। |
| ১৬ | UNAUTHENTICATED | 401 Unauthorized | অপারেশনটির জন্য অনুরোধটিতে বৈধ প্রমাণীকরণ তথ্য নেই। | সমস্যাটি সমাধান না করে পুনরায় চেষ্টা করবেন না। |