দীর্ঘস্থায়ী ক্রিয়াকলাপ পরিচালনা করুন

একটি দীর্ঘ-চলমান অপারেশন (LRO) হল একটি API পদ্ধতি যা একটি API প্রতিক্রিয়ার জন্য উপযুক্ত হওয়ার চেয়ে সম্পূর্ণ হতে বেশি সময় নেয়। সাধারণত, টাস্কটি চলাকালীন আপনি কলিং থ্রেডটি খোলা রাখতে চান না কারণ এটি একটি দুর্বল ব্যবহারকারীর অভিজ্ঞতা প্রদান করে। পরিবর্তে, ব্যবহারকারীর কাছে কিছু ধরনের প্রতিশ্রুতি ফেরত দেওয়া এবং তাদের পরে আবার চেক করার অনুমতি দেওয়া ভাল।

ড্রাইভ এপিআই বা এর ক্লায়েন্ট লাইব্রেরির মাধ্যমে কোনো ফাইলের বিষয়বস্তু ডাউনলোড করতে files রিসোর্সে download() পদ্ধতিতে কল করার সময় Google ড্রাইভ এপিআই একটি LRO ফেরত দেয়।

পদ্ধতিটি ক্লায়েন্টকে একটি operations রিসোর্স ফেরত দেয়। আপনি get() পদ্ধতির মাধ্যমে অপারেশন পোলিং করে অ্যাসিঙ্ক্রোনাসভাবে API পদ্ধতির স্থিতি পুনরুদ্ধার করতে operations রিসোর্স ব্যবহার করতে পারেন। ড্রাইভ এপিআই-এর LROগুলি Google ক্লাউড LRO ডিজাইন প্যাটার্ন মেনে চলে৷

আরও তথ্যের জন্য, দীর্ঘ-চলমান অপারেশন দেখুন।

প্রক্রিয়া ওভারভিউ

নিম্নলিখিত চিত্রটি file.download পদ্ধতি কীভাবে কাজ করে তার উচ্চ-স্তরের ধাপগুলি দেখায়।

file.download পদ্ধতির জন্য উচ্চ-স্তরের ধাপ।
চিত্র 1. file.download পদ্ধতির জন্য উচ্চ-স্তরের পদক্ষেপ।

  1. Call files.download : যখন আপনার অ্যাপ download() পদ্ধতিতে কল করে, তখন এটি ফাইলের জন্য ড্রাইভ এপিআই ডাউনলোডের অনুরোধ চালু করে। আরও তথ্যের জন্য, ফাইল ডাউনলোড করুন দেখুন।

  2. অনুমতির অনুরোধ করুন : অনুরোধটি ড্রাইভ এপিআই-এ প্রমাণীকরণ শংসাপত্র পাঠায়। আপনার অ্যাপ্লিকেশানের যদি কোনও ব্যবহারকারীর প্রমাণীকরণ ব্যবহার করে ড্রাইভ API কল করার প্রয়োজন হয় যা এখনও মঞ্জুর করা হয়নি, তবে এটি ব্যবহারকারীকে সাইন ইন করতে অনুরোধ করে৷ আপনার অ্যাপ্লিকেশানটি প্রমাণীকরণ সেট আপ করার সময় আপনার নির্দিষ্ট করা স্কোপের সাথে অ্যাক্সেসের জন্যও অনুরোধ করে৷

  3. ডাউনলোড শুরু করুন : ফাইল ডাউনলোড শুরু করার জন্য একটি ড্রাইভ API অনুরোধ করা হয়েছে। Google Vids বা অন্য কিছু Google Workspace কন্টেন্টে অনুরোধ করা যেতে পারে।

  4. LRO শুরু করুন : একটি দীর্ঘস্থায়ী অপারেশন শুরু হয় এবং এটি ডাউনলোড প্রক্রিয়া পরিচালনা করে।

  5. রিটার্ন পেন্ডিং অপারেশন : ড্রাইভ এপিআই একটি পেন্ডিং অপারেশন ফেরত দেয় যাতে ব্যবহারকারীর অনুরোধ করা এবং বিভিন্ন ফাইল মেটাডেটা ক্ষেত্র সম্পর্কে তথ্য থাকে।

  6. প্রারম্ভিক মুলতুবি অবস্থা : আপনার অ্যাপ মুলতুবি থাকা ক্রিয়াকলাপের সাথে একটি প্রাথমিক মুলতুবি থাকা অবস্থায় done=null পায়। এটি বোঝায় যে ফাইলটি এখনও ডাউনলোডের জন্য প্রস্তুত নয় এবং অপারেশন স্থিতি মুলতুবি রয়েছে৷

  7. কল operations.get এবং ফলাফল যাচাই করুন : আপনার অ্যাপ কলগুলি প্রস্তাবিত বিরতিতে অপারেশনের ফলাফল পোল করতে এবং দীর্ঘস্থায়ী অপারেশনের সর্বশেষ অবস্থা পেতে get() । মুলতুবি থাকা অবস্থায় done=false ফেরত দেওয়া হলে, অপারেশনটি সম্পূর্ণ অবস্থায় ফিরে না আসা পর্যন্ত আপনার অ্যাপকে অবশ্যই পোলিং চালিয়ে যেতে হবে ( done=true )। বড় ফাইলগুলির জন্য, একাধিকবার পোল করার আশা করুন৷ আরও তথ্যের জন্য, একটি দীর্ঘমেয়াদী অপারেশন সম্পর্কে বিস্তারিত জানুন দেখুন।

  8. পেন্ডিং স্টেট চেক করুন : যদি LRO থেকে done=true এর পেন্ডিং স্টেট ফেরত দেওয়া হয়, তাহলে এটি বোঝায় যে ফাইলটি ডাউনলোডের জন্য প্রস্তুত এবং অপারেশন স্ট্যাটাস সম্পূর্ণ।

  9. ডাউনলোড ইউআরআই সহ সম্পূর্ণ অপারেশন ফিরিয়ে দিন : একবার এলআরও হয়ে গেলে, ড্রাইভ এপিআই ডাউনলোড ইউআরআই ফেরত দেয় এবং ফাইলটি এখন ব্যবহারকারীর কাছে উপলব্ধ।

ফাইল ডাউনলোড করুন

একটি দীর্ঘ-চলমান অপারেশনের অধীনে সামগ্রী ডাউনলোড করতে, files রিসোর্সে download() পদ্ধতি ব্যবহার করুন। পদ্ধতিটি file_id , mime_type , এবং revision_id এর ক্যোয়ারী প্যারামিটার নেয় :

  • প্রয়োজন। file_id ক্যোয়ারী প্যারামিটারটি ডাউনলোড করার জন্য ফাইলের আইডি।

  • ঐচ্ছিক। mime_type ক্যোয়ারী প্যারামিটারটি বোঝায় যে MIME প্রকারটি পদ্ধতিটি ব্যবহার করা উচিত। এটি শুধুমাত্র তখনই পাওয়া যায় যখন নন-ব্লব মিডিয়া কন্টেন্ট (যেমন Google Workspace ডকুমেন্ট) ডাউনলোড করা হয়। সমর্থিত MIME প্রকারের সম্পূর্ণ তালিকার জন্য, Google Workspace ডকুমেন্টের জন্য MIME প্রকার এক্সপোর্ট করুন দেখুন।

    MIME টাইপ সেট করা না থাকলে, Google Workspace ডকুমেন্ট একটি ডিফল্ট MIME টাইপ দিয়ে ডাউনলোড করা হয়। আরও তথ্যের জন্য, ডিফল্ট MIME প্রকারগুলি দেখুন।

  • ঐচ্ছিক। revision_id ক্যোয়ারী প্যারামিটার হল ডাউনলোড করার জন্য ফাইলের রিভিশন আইডি। এটি শুধুমাত্র ব্লব ফাইল, Google ডক্স এবং Google পত্রক ডাউনলোড করার সময় উপলব্ধ। অসমর্থিত ফাইলগুলিতে একটি নির্দিষ্ট সংশোধন ডাউনলোড করার সময় ত্রুটি কোড INVALID_ARGUMENT ফেরত দেয়৷

MP4 ফরম্যাটে ভিডস ফাইল ডাউনলোড করার একমাত্র উপায় download() পদ্ধতি এবং বেশিরভাগ ভিডিও ফাইল ডাউনলোড করার জন্য এটি সবচেয়ে উপযুক্ত।

Google ডক্স বা পত্রকগুলির জন্য তৈরি করা ডাউনলোড লিঙ্কগুলি প্রাথমিকভাবে একটি পুনঃনির্দেশ ফেরত দেয়৷ ফাইলটি ডাউনলোড করতে নতুন লিঙ্কে ক্লিক করুন।

download() পদ্ধতিতে একটি অনুরোধ যা LRO শুরু করে এবং চূড়ান্ত ডাউনলোড ইউআরআই আনার অনুরোধ, উভয়ই রিসোর্স কী ব্যবহার করা উচিত। আরও তথ্যের জন্য, রিসোর্স কী ব্যবহার করে লিঙ্ক-শেয়ারড ড্রাইভ ফাইল অ্যাক্সেস করুন দেখুন।

অনুরোধ প্রোটোকল এখানে দেখানো হয়েছে.

POST https://www.googleapis.com/drive/v3/files/{FILE_ID}/download

আপনি যে ফাইলটি ডাউনলোড করতে চান তার fileId দিয়ে FILE_ID প্রতিস্থাপন করুন।

ডিফল্ট MIME প্রকার

নন-ব্লব সামগ্রী ডাউনলোড করার সময় যদি একটি MIME প্রকার সেট করা না থাকে, তাহলে নিম্নলিখিত ডিফল্ট MIME প্রকারগুলি বরাদ্দ করা হয়:

নথির ধরন বিন্যাস MIME প্রকার ফাইল এক্সটেনশন
Google Apps স্ক্রিপ্ট JSON application/vnd.google-apps.script+json .json
Google ডক্স মাইক্রোসফট ওয়ার্ড application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
গুগল অঙ্কন পিএনজি image/png .png
গুগল ফর্ম জিপ অ্যাপ্লিকেশন/জিপ জিপ
Google পত্রক মাইক্রোসফট এক্সেল application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
গুগল সাইট কাঁচা পাঠ পাঠ্য/কাঁচা .txt
গুগল স্লাইড মাইক্রোসফট পাওয়ারপয়েন্ট application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
Google Vids MP4 অ্যাপ্লিকেশন/mp4 .mp4
জামবোর্ড PDF অ্যাপ্লিকেশন/পিডিএফ .pdf

প্রতিক্রিয়া ডাউনলোড করুন

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
  }
}

এই আউটপুট নিম্নলিখিত মান অন্তর্ভুক্ত:

মনে রাখবেন যে partialDownloadAllowed ক্ষেত্রটি নির্দেশ করে যদি একটি আংশিক ডাউনলোড অনুমোদিত হয়। ব্লব ফাইল সামগ্রী ডাউনলোড করার সময় সত্য।

দীর্ঘস্থায়ী অপারেশন সম্পর্কে বিস্তারিত জানুন

দীর্ঘমেয়াদী অপারেশন হল মেথড কল যা সম্পূর্ণ হতে যথেষ্ট সময় লাগতে পারে। সাধারণত, নতুন তৈরি করা ডাউনলোড অপারেশনগুলি প্রাথমিকভাবে একটি মুলতুবি অবস্থায় ফেরত দেওয়া হয় ( done=null ), বিশেষ করে Vids ফাইলগুলির জন্য।

ড্রাইভ এপিআই প্রসেসিং এলআরও-এর স্থিতি পরীক্ষা করার জন্য অনন্য সার্ভার-অ্যাসাইন করা নাম অন্তর্ভুক্ত করে operations রিসোর্স ব্যবহার করতে পারেন।

get() পদ্ধতিটি অ্যাসিঙ্ক্রোনাসভাবে একটি দীর্ঘ-চলমান অপারেশনের সর্বশেষ অবস্থা পায়। ক্লায়েন্টরা API পরিষেবা দ্বারা সুপারিশকৃত বিরতিতে অপারেশন ফলাফল পোল করতে এই পদ্ধতি ব্যবহার করতে পারেন।

একটি দীর্ঘমেয়াদী অপারেশন পোল

একটি উপলব্ধ এলআরও পোল করতে, অপারেশন শেষ না হওয়া পর্যন্ত বারবার get() পদ্ধতিতে কল করুন। প্রতিটি পোল অনুরোধের মধ্যে একটি সূচকীয় ব্যাকঅফ ব্যবহার করুন, যেমন 10 সেকেন্ড।

একটি LRO ন্যূনতম 12 ঘন্টার জন্য উপলব্ধ থাকে তবে কিছু ক্ষেত্রে আরও বেশি সময় ধরে চলতে পারে। এই সময়কাল পরিবর্তন সাপেক্ষে এবং ফাইল প্রকারের মধ্যে ভিন্ন হতে পারে। সম্পদের মেয়াদ শেষ হয়ে গেলে একটি নতুন 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 প্রতিস্থাপন করুন।

কমান্ডটি path /drive/v3/operations/ NAME ব্যবহার করে।

উল্লেখ্য যে name শুধুমাত্র একটি download() অনুরোধের প্রতিক্রিয়ায় ফেরত দেওয়া হয়। এটি পুনরুদ্ধার করার অন্য কোন উপায় নেই কারণ ড্রাইভ API List() পদ্ধতি সমর্থন করে না। name মান হারিয়ে গেলে, download() পদ্ধতির অনুরোধে আবার কল করে আপনাকে অবশ্যই একটি নতুন প্রতিক্রিয়া তৈরি করতে হবে।

একটি get() অনুরোধের প্রতিক্রিয়া একটি দীর্ঘ-চলমান ক্রিয়াকলাপের প্রতিনিধিত্বকারী একটি সংস্থান নিয়ে গঠিত। আরও তথ্যের জন্য, ডাউনলোড প্রতিক্রিয়া দেখুন।

যখন প্রতিক্রিয়া একটি সম্পূর্ণ অবস্থা ধারণ করে ( done=true ), দীর্ঘ-চলমান অপারেশন শেষ হয়।

একটি রিভিশন ডাউনলোড করুন

আপনি সর্বশেষ রিভিশন ডাউনলোড করতে files রিসোর্স থেকে headRevisionId ক্ষেত্রের মান ব্যবহার করতে পারেন। এটি আপনার পূর্বে পুনরুদ্ধার করা ফাইলটির মেটাডেটার সাথে সম্পর্কিত সংশোধন আনে। ক্লাউডে এখনও সংরক্ষিত ফাইলের পূর্ববর্তী সমস্ত রিভিশনের ডেটা ডাউনলোড করতে, আপনি fileId প্যারামিটার সহ revisions রিসোর্সে list() পদ্ধতিতে কল করতে পারেন। এটি ফাইলের সমস্ত revisionIds ফেরত দেয়।

ব্লব ফাইলের রিভিশন কন্টেন্ট ডাউনলোড করতে, আপনাকে অবশ্যই revisions রিসোর্সে get() পদ্ধতিতে কল করতে হবে ডাউনলোড করার জন্য ফাইলের আইডি, রিভিশনের আইডি এবং alt=media URL প্যারামিটার। alt=media URL প্যারামিটার সার্ভারকে বলে যে একটি সামগ্রী ডাউনলোড একটি বিকল্প প্রতিক্রিয়া বিন্যাস হিসাবে অনুরোধ করা হচ্ছে৷

Google Docs, Sheets, Slides, এবং Vids-এর রিভিশনগুলি alt=media URL দিয়ে get() পদ্ধতি ব্যবহার করে ডাউনলোড করা যাবে না। অন্যথায়, এটি একটি fileNotDownloadable ত্রুটি তৈরি করে।

alt=media URL প্যারামিটার হল একটি সিস্টেম প্যারামিটার যা সমস্ত Google REST API তে উপলব্ধ। আপনি যদি ড্রাইভ API-এর জন্য একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনাকে এই প্যারামিটারটি স্পষ্টভাবে সেট করতে হবে না।

অনুরোধ প্রোটোকল এখানে দেখানো হয়েছে.

GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=media

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • FILE_ID : আপনি যে ফাইলটি ডাউনলোড করতে চান তার fileId
  • REVISION_ID : আপনি যে রিভিশনটি ডাউনলোড করতে চান তার revisionId

Google দস্তাবেজ, অঙ্কন, এবং স্লাইড সংশোধনগুলি পুনর্বিবেচনা নম্বরগুলি স্বয়ংক্রিয়ভাবে বৃদ্ধি করে৷ যাইহোক, সংখ্যার সিরিজে ফাঁক থাকতে পারে যদি সংশোধনগুলি মুছে ফেলা হয়, তাই আপনার সংশোধনগুলি পুনরুদ্ধার করার জন্য অনুক্রমিক সংখ্যার উপর নির্ভর করা উচিত নয়।

এলআরও সমস্যা সমাধান করুন

যখন একটি LRO ব্যর্থ হয়, তখন এর প্রতিক্রিয়া একটি ক্যানোনিকাল Google ক্লাউড ত্রুটি কোড অন্তর্ভুক্ত করে।

নিম্নলিখিত টেবিলটি প্রতিটি কোডের কারণের ব্যাখ্যা এবং কোডটি কীভাবে পরিচালনা করতে হয় তার জন্য একটি সুপারিশ প্রদান করে। অনেক ত্রুটির জন্য, প্রস্তাবিত পদক্ষেপ হল সূচকীয় ব্যাকঅফ ব্যবহার করে অনুরোধটি আবার চেষ্টা করা।

আপনি API ডিজাইন গাইডে এই ত্রুটি মডেল এবং এটির সাথে কীভাবে কাজ করবেন সে সম্পর্কে আরও পড়তে পারেন।

কোড এনাম বর্ণনা সুপারিশকৃত পদক্ষেপ
1 CANCELLED অপারেশনটি বাতিল করা হয়েছে, সাধারণত কলার দ্বারা। অপারেশন পুনরায় চালান।
2 UNKNOWN এই ত্রুটিটি ফেরত দেওয়া হতে পারে যখন অন্য ঠিকানা স্থান থেকে প্রাপ্ত একটি Status মান একটি ত্রুটি স্থানের অন্তর্গত হয় যা এই ঠিকানার স্থানটিতে পরিচিত নয়। API ত্রুটি পর্যাপ্ত তথ্য ফেরত না দিলে, ত্রুটিটি এই ত্রুটিতে রূপান্তরিত হতে পারে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
3 INVALID_ARGUMENT ক্লায়েন্ট একটি অবৈধ যুক্তি নির্দিষ্ট করেছে৷ এই ত্রুটি FAILED_PRECONDITION থেকে আলাদা। INVALID_ARGUMENT এমন আর্গুমেন্ট নির্দেশ করে যেগুলি সিস্টেমের অবস্থা নির্বিশেষে সমস্যাযুক্ত, যেমন একটি বিকৃত ফাইলের নাম। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
4 DEADLINE_EXCEEDED অপারেশন শেষ হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। সিস্টেমের অবস্থা পরিবর্তন করে এমন ক্রিয়াকলাপগুলির জন্য, অপারেশনটি সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি ফেরত দেওয়া হতে পারে। উদাহরণস্বরূপ, একটি সার্ভার থেকে একটি সফল প্রতিক্রিয়ার সময়সীমা শেষ হওয়ার জন্য যথেষ্ট দেরি হতে পারে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
5 NOT_FOUND কিছু অনুরোধ করা সত্তা, যেমন একটি FHIR সম্পদ, পাওয়া যায়নি। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
6 ALREADY_EXISTS একটি ক্লায়েন্ট যে সত্তা তৈরি করার চেষ্টা করেছে, যেমন একটি DICOM উদাহরণ, ইতিমধ্যেই বিদ্যমান। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
7 PERMISSION_DENIED কলারের নির্দিষ্ট অপারেশন চালানোর অনুমতি নেই। এই ত্রুটি কোডটি বোঝায় না যে অনুরোধটি বৈধ, অনুরোধ করা সত্তা বিদ্যমান, বা এটি অন্যান্য পূর্বশর্তগুলিকে সন্তুষ্ট করে৷ সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
8 RESOURCE_EXHAUSTED কিছু সম্পদ শেষ হয়ে গেছে, যেমন প্রতি-প্রকল্প কোটা। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন। কোটা সময়ের সাথে উপলব্ধ হতে পারে।
9 FAILED_PRECONDITION অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি কার্যকর করার জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই৷ উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয়, অথবা একটি নন-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
10 ABORTED অপারেশনটি স্থগিত করা হয়েছিল, সাধারণত একটি সিকোয়েন্সার চেক ব্যর্থতা বা লেনদেন বাতিলের মতো একযোগে সমস্যার কারণে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
11 OUT_OF_RANGE ক্রিয়াকলাপটি বৈধ পরিসীমা অতিক্রম করার চেষ্টা করা হয়েছিল, যেমন ফাইলের শেষ-অন্তে খোঁজা বা পড়া। INVALID_ARGUMENT বিপরীতে, এই ত্রুটিটি এমন একটি সমস্যা নির্দেশ করে যা সিস্টেমের অবস্থা পরিবর্তন হলে ঠিক করা যেতে পারে। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
12 UNIMPLEMENTED অপারেশনটি বাস্তবায়িত হয় না বা ড্রাইভ এপিআইতে সমর্থিত/সক্ষম নয়৷ আবার চেষ্টা করবেন না।
13 INTERNAL অভ্যন্তরীণ ত্রুটি. এটি নির্দেশ করে যে অন্তর্নিহিত সিস্টেমে প্রক্রিয়াকরণে একটি অপ্রত্যাশিত ত্রুটির সম্মুখীন হয়েছে৷ সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
14 UNAVAILABLE ড্রাইভ API অনুপলব্ধ৷ এটি সম্ভবত একটি ক্ষণস্থায়ী অবস্থা, যা সূচকীয় ব্যাকঅফের সাথে পুনরায় চেষ্টা করে সংশোধন করা যেতে পারে। মনে রাখবেন যে অ-অদম্য ক্রিয়াকলাপগুলি পুনরায় চেষ্টা করা সর্বদা নিরাপদ নয়। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
15 DATA_LOSS পুনরুদ্ধারযোগ্য ডেটা ক্ষতি বা দুর্নীতি। আপনার সিস্টেম অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। ডেটা হারানো বা দুর্নীতি হলে সিস্টেম অ্যাডমিনিস্ট্রেটর একজন সহায়তা প্রতিনিধির সাথে যোগাযোগ করতে চাইতে পারেন।
16 UNAUTHENTICATED অনুরোধটির অপারেশনের জন্য বৈধ প্রমাণীকরণ শংসাপত্র নেই৷ সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
,

একটি দীর্ঘ-চলমান অপারেশন (LRO) হল একটি API পদ্ধতি যা একটি API প্রতিক্রিয়ার জন্য উপযুক্ত হওয়ার চেয়ে সম্পূর্ণ হতে বেশি সময় নেয়। সাধারণত, টাস্কটি চলাকালীন আপনি কলিং থ্রেডটি খোলা রাখতে চান না কারণ এটি একটি দুর্বল ব্যবহারকারীর অভিজ্ঞতা প্রদান করে। পরিবর্তে, ব্যবহারকারীর কাছে কিছু ধরনের প্রতিশ্রুতি ফেরত দেওয়া এবং তাদের পরে আবার চেক করার অনুমতি দেওয়া ভাল।

ড্রাইভ এপিআই বা এর ক্লায়েন্ট লাইব্রেরির মাধ্যমে কোনো ফাইলের বিষয়বস্তু ডাউনলোড করতে files রিসোর্সে download() পদ্ধতিতে কল করার সময় Google ড্রাইভ এপিআই একটি LRO ফেরত দেয়।

পদ্ধতিটি ক্লায়েন্টকে একটি operations রিসোর্স ফেরত দেয়। আপনি get() পদ্ধতির মাধ্যমে অপারেশন পোলিং করে অ্যাসিঙ্ক্রোনাসভাবে API পদ্ধতির স্থিতি পুনরুদ্ধার করতে operations রিসোর্স ব্যবহার করতে পারেন। ড্রাইভ এপিআই-এর LROগুলি Google ক্লাউড LRO ডিজাইন প্যাটার্ন মেনে চলে৷

আরও তথ্যের জন্য, দীর্ঘ-চলমান অপারেশন দেখুন।

প্রক্রিয়া ওভারভিউ

নিম্নলিখিত চিত্রটি file.download পদ্ধতি কীভাবে কাজ করে তার উচ্চ-স্তরের ধাপগুলি দেখায়।

file.download পদ্ধতির জন্য উচ্চ-স্তরের ধাপ।
চিত্র 1. file.download পদ্ধতির জন্য উচ্চ-স্তরের পদক্ষেপ।

  1. Call files.download : যখন আপনার অ্যাপ download() পদ্ধতিতে কল করে, তখন এটি ফাইলের জন্য ড্রাইভ এপিআই ডাউনলোডের অনুরোধ চালু করে। আরও তথ্যের জন্য, ফাইল ডাউনলোড করুন দেখুন।

  2. অনুমতির অনুরোধ করুন : অনুরোধটি ড্রাইভ এপিআই-এ প্রমাণীকরণ শংসাপত্র পাঠায়। আপনার অ্যাপ্লিকেশানের যদি কোনও ব্যবহারকারীর প্রমাণীকরণ ব্যবহার করে ড্রাইভ API কল করার প্রয়োজন হয় যা এখনও মঞ্জুর করা হয়নি, তবে এটি ব্যবহারকারীকে সাইন ইন করতে অনুরোধ করে৷ আপনার অ্যাপ্লিকেশানটি প্রমাণীকরণ সেট আপ করার সময় আপনার নির্দিষ্ট করা স্কোপের সাথে অ্যাক্সেসের জন্যও অনুরোধ করে৷

  3. ডাউনলোড শুরু করুন : ফাইল ডাউনলোড শুরু করার জন্য একটি ড্রাইভ API অনুরোধ করা হয়েছে। Google Vids বা অন্য কিছু Google Workspace কন্টেন্টে অনুরোধ করা যেতে পারে।

  4. LRO শুরু করুন : একটি দীর্ঘস্থায়ী অপারেশন শুরু হয় এবং এটি ডাউনলোড প্রক্রিয়া পরিচালনা করে।

  5. রিটার্ন পেন্ডিং অপারেশন : ড্রাইভ এপিআই একটি পেন্ডিং অপারেশন ফেরত দেয় যাতে ব্যবহারকারীর অনুরোধ করা এবং বিভিন্ন ফাইল মেটাডেটা ক্ষেত্র সম্পর্কে তথ্য থাকে।

  6. প্রারম্ভিক মুলতুবি অবস্থা : আপনার অ্যাপ মুলতুবি থাকা ক্রিয়াকলাপের সাথে একটি প্রাথমিক মুলতুবি থাকা অবস্থায় done=null পায়। এটি বোঝায় যে ফাইলটি এখনও ডাউনলোডের জন্য প্রস্তুত নয় এবং অপারেশন স্থিতি মুলতুবি রয়েছে৷

  7. কল operations.get এবং ফলাফল যাচাই করুন : আপনার অ্যাপ কলগুলি প্রস্তাবিত বিরতিতে অপারেশনের ফলাফল পোল করতে এবং দীর্ঘস্থায়ী অপারেশনের সর্বশেষ অবস্থা পেতে get() । মুলতুবি থাকা অবস্থায় done=false ফেরত দেওয়া হলে, অপারেশনটি সম্পূর্ণ অবস্থায় ফিরে না আসা পর্যন্ত আপনার অ্যাপকে অবশ্যই পোলিং চালিয়ে যেতে হবে ( done=true )। বড় ফাইলগুলির জন্য, একাধিকবার পোল করার আশা করুন৷ আরও তথ্যের জন্য, একটি দীর্ঘমেয়াদী অপারেশন সম্পর্কে বিস্তারিত জানুন দেখুন।

  8. পেন্ডিং স্টেট চেক করুন : যদি LRO থেকে done=true এর পেন্ডিং স্টেট ফেরত দেওয়া হয়, তাহলে এটি বোঝায় যে ফাইলটি ডাউনলোডের জন্য প্রস্তুত এবং অপারেশন স্ট্যাটাস সম্পূর্ণ।

  9. ডাউনলোড ইউআরআই সহ সম্পূর্ণ অপারেশন ফিরিয়ে দিন : একবার এলআরও হয়ে গেলে, ড্রাইভ এপিআই ডাউনলোড ইউআরআই ফেরত দেয় এবং ফাইলটি এখন ব্যবহারকারীর কাছে উপলব্ধ।

ফাইল ডাউনলোড করুন

একটি দীর্ঘ-চলমান অপারেশনের অধীনে সামগ্রী ডাউনলোড করতে, files রিসোর্সে download() পদ্ধতি ব্যবহার করুন। পদ্ধতিটি file_id , mime_type , এবং revision_id এর ক্যোয়ারী প্যারামিটার নেয় :

  • প্রয়োজন। file_id ক্যোয়ারী প্যারামিটারটি ডাউনলোড করার জন্য ফাইলের আইডি।

  • ঐচ্ছিক। mime_type ক্যোয়ারী প্যারামিটারটি বোঝায় যে MIME প্রকারটি পদ্ধতিটি ব্যবহার করা উচিত। এটি শুধুমাত্র তখনই পাওয়া যায় যখন নন-ব্লব মিডিয়া কন্টেন্ট (যেমন Google Workspace ডকুমেন্ট) ডাউনলোড করা হয়। সমর্থিত MIME প্রকারের সম্পূর্ণ তালিকার জন্য, Google Workspace ডকুমেন্টের জন্য MIME প্রকার এক্সপোর্ট করুন দেখুন।

    MIME টাইপ সেট করা না থাকলে, Google Workspace ডকুমেন্ট একটি ডিফল্ট MIME টাইপ দিয়ে ডাউনলোড করা হয়। আরও তথ্যের জন্য, ডিফল্ট MIME প্রকারগুলি দেখুন।

  • ঐচ্ছিক। revision_id ক্যোয়ারী প্যারামিটার হল ডাউনলোড করার জন্য ফাইলের রিভিশন আইডি। এটি শুধুমাত্র ব্লব ফাইল, Google ডক্স এবং Google পত্রক ডাউনলোড করার সময় উপলব্ধ। অসমর্থিত ফাইলগুলিতে একটি নির্দিষ্ট সংশোধন ডাউনলোড করার সময় ত্রুটি কোড INVALID_ARGUMENT ফেরত দেয়৷

MP4 ফরম্যাটে ভিডস ফাইল ডাউনলোড করার একমাত্র উপায় download() পদ্ধতি এবং বেশিরভাগ ভিডিও ফাইল ডাউনলোড করার জন্য এটি সবচেয়ে উপযুক্ত।

Google ডক্স বা পত্রকগুলির জন্য তৈরি করা ডাউনলোড লিঙ্কগুলি প্রাথমিকভাবে একটি পুনঃনির্দেশ ফেরত দেয়৷ ফাইলটি ডাউনলোড করতে নতুন লিঙ্কে ক্লিক করুন।

download() পদ্ধতিতে একটি অনুরোধ যা LRO শুরু করে এবং চূড়ান্ত ডাউনলোড ইউআরআই আনার অনুরোধ, উভয়ই রিসোর্স কী ব্যবহার করা উচিত। আরও তথ্যের জন্য, রিসোর্স কী ব্যবহার করে লিঙ্ক-শেয়ারড ড্রাইভ ফাইল অ্যাক্সেস করুন দেখুন।

অনুরোধ প্রোটোকল এখানে দেখানো হয়েছে.

POST https://www.googleapis.com/drive/v3/files/{FILE_ID}/download

আপনি যে ফাইলটি ডাউনলোড করতে চান তার fileId দিয়ে FILE_ID প্রতিস্থাপন করুন।

ডিফল্ট MIME প্রকার

নন-ব্লব সামগ্রী ডাউনলোড করার সময় যদি একটি MIME প্রকার সেট করা না থাকে, তাহলে নিম্নলিখিত ডিফল্ট MIME প্রকারগুলি বরাদ্দ করা হয়:

নথির ধরন বিন্যাস MIME প্রকার ফাইল এক্সটেনশন
Google Apps স্ক্রিপ্ট JSON application/vnd.google-apps.script+json .json
Google ডক্স মাইক্রোসফট ওয়ার্ড application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
গুগল অঙ্কন পিএনজি image/png .png
গুগল ফর্ম জিপ অ্যাপ্লিকেশন/জিপ জিপ
Google পত্রক মাইক্রোসফট এক্সেল application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
গুগল সাইট কাঁচা পাঠ পাঠ্য/কাঁচা .txt
গুগল স্লাইড মাইক্রোসফট পাওয়ারপয়েন্ট application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
Google Vids MP4 অ্যাপ্লিকেশন/mp4 .mp4
জামবোর্ড PDF অ্যাপ্লিকেশন/পিডিএফ .pdf

প্রতিক্রিয়া ডাউনলোড করুন

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
  }
}

এই আউটপুট নিম্নলিখিত মান অন্তর্ভুক্ত:

মনে রাখবেন যে partialDownloadAllowed ক্ষেত্রটি নির্দেশ করে যদি একটি আংশিক ডাউনলোড অনুমোদিত হয়। ব্লব ফাইল সামগ্রী ডাউনলোড করার সময় সত্য।

দীর্ঘস্থায়ী অপারেশন সম্পর্কে বিস্তারিত জানুন

দীর্ঘমেয়াদী অপারেশন হল মেথড কল যা সম্পূর্ণ হতে যথেষ্ট সময় লাগতে পারে। সাধারণত, নতুন তৈরি করা ডাউনলোড অপারেশনগুলি প্রাথমিকভাবে একটি মুলতুবি অবস্থায় ফেরত দেওয়া হয় ( done=null ), বিশেষ করে Vids ফাইলগুলির জন্য।

ড্রাইভ এপিআই প্রসেসিং এলআরও-এর স্থিতি পরীক্ষা করার জন্য অনন্য সার্ভার-অ্যাসাইন করা নাম অন্তর্ভুক্ত করে operations রিসোর্স ব্যবহার করতে পারেন।

get() পদ্ধতিটি অ্যাসিঙ্ক্রোনাসভাবে একটি দীর্ঘ-চলমান অপারেশনের সর্বশেষ অবস্থা পায়। ক্লায়েন্টরা API পরিষেবা দ্বারা সুপারিশকৃত বিরতিতে অপারেশন ফলাফল পোল করতে এই পদ্ধতি ব্যবহার করতে পারেন।

একটি দীর্ঘমেয়াদী অপারেশন পোল

একটি উপলব্ধ এলআরও পোল করতে, অপারেশন শেষ না হওয়া পর্যন্ত বারবার get() পদ্ধতিতে কল করুন। প্রতিটি পোল অনুরোধের মধ্যে একটি সূচকীয় ব্যাকঅফ ব্যবহার করুন, যেমন 10 সেকেন্ড।

একটি LRO ন্যূনতম 12 ঘন্টার জন্য উপলব্ধ থাকে তবে কিছু ক্ষেত্রে আরও বেশি সময় ধরে চলতে পারে। এই সময়কাল পরিবর্তন সাপেক্ষে এবং ফাইল প্রকারের মধ্যে ভিন্ন হতে পারে। সম্পদের মেয়াদ শেষ হয়ে গেলে একটি নতুন 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 প্রতিস্থাপন করুন।

কমান্ডটি path /drive/v3/operations/ NAME ব্যবহার করে।

উল্লেখ্য যে name শুধুমাত্র একটি download() অনুরোধের প্রতিক্রিয়ায় ফেরত দেওয়া হয়। এটি পুনরুদ্ধার করার অন্য কোন উপায় নেই কারণ ড্রাইভ API List() পদ্ধতি সমর্থন করে না। name মান হারিয়ে গেলে, download() পদ্ধতির অনুরোধে আবার কল করে আপনাকে অবশ্যই একটি নতুন প্রতিক্রিয়া তৈরি করতে হবে।

একটি get() অনুরোধের প্রতিক্রিয়া একটি দীর্ঘ-চলমান ক্রিয়াকলাপের প্রতিনিধিত্বকারী একটি সংস্থান নিয়ে গঠিত। আরও তথ্যের জন্য, ডাউনলোড প্রতিক্রিয়া দেখুন।

যখন প্রতিক্রিয়া একটি সম্পূর্ণ অবস্থা ধারণ করে ( done=true ), দীর্ঘ-চলমান অপারেশন শেষ হয়।

একটি রিভিশন ডাউনলোড করুন

আপনি সর্বশেষ রিভিশন ডাউনলোড করতে files রিসোর্স থেকে headRevisionId ক্ষেত্রের মান ব্যবহার করতে পারেন। এটি আপনার পূর্বে পুনরুদ্ধার করা ফাইলটির মেটাডেটার সাথে সম্পর্কিত সংশোধন আনে। ক্লাউডে এখনও সংরক্ষিত ফাইলের পূর্ববর্তী সমস্ত রিভিশনের ডেটা ডাউনলোড করতে, আপনি fileId প্যারামিটার সহ revisions রিসোর্সে list() পদ্ধতিতে কল করতে পারেন। এটি ফাইলের সমস্ত revisionIds ফেরত দেয়।

ব্লব ফাইলের রিভিশন কন্টেন্ট ডাউনলোড করতে, আপনাকে অবশ্যই revisions রিসোর্সে get() পদ্ধতিতে কল করতে হবে ডাউনলোড করার জন্য ফাইলের আইডি, রিভিশনের আইডি এবং alt=media URL প্যারামিটার। alt=media URL প্যারামিটার সার্ভারকে বলে যে একটি সামগ্রী ডাউনলোড একটি বিকল্প প্রতিক্রিয়া বিন্যাস হিসাবে অনুরোধ করা হচ্ছে৷

Google Docs, Sheets, Slides, এবং Vids-এর রিভিশনগুলি alt=media URL দিয়ে get() পদ্ধতি ব্যবহার করে ডাউনলোড করা যাবে না। অন্যথায়, এটি একটি fileNotDownloadable ত্রুটি তৈরি করে।

alt=media URL প্যারামিটার হল একটি সিস্টেম প্যারামিটার যা সমস্ত Google REST API তে উপলব্ধ। আপনি যদি ড্রাইভ API-এর জন্য একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনাকে এই প্যারামিটারটি স্পষ্টভাবে সেট করতে হবে না।

অনুরোধ প্রোটোকল এখানে দেখানো হয়েছে.

GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=media

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • FILE_ID : আপনি যে ফাইলটি ডাউনলোড করতে চান তার fileId
  • REVISION_ID : আপনি যে রিভিশনটি ডাউনলোড করতে চান তার revisionId

Google দস্তাবেজ, অঙ্কন, এবং স্লাইড সংশোধনগুলি পুনর্বিবেচনা নম্বরগুলি স্বয়ংক্রিয়ভাবে বৃদ্ধি করে৷ যাইহোক, সংখ্যার সিরিজে ফাঁক থাকতে পারে যদি সংশোধনগুলি মুছে ফেলা হয়, তাই আপনার সংশোধনগুলি পুনরুদ্ধার করার জন্য অনুক্রমিক সংখ্যার উপর নির্ভর করা উচিত নয়।

এলআরও সমস্যা সমাধান করুন

যখন একটি LRO ব্যর্থ হয়, তখন এর প্রতিক্রিয়া একটি ক্যানোনিকাল Google ক্লাউড ত্রুটি কোড অন্তর্ভুক্ত করে।

নিম্নলিখিত টেবিলটি প্রতিটি কোডের কারণের ব্যাখ্যা এবং কোডটি কীভাবে পরিচালনা করতে হয় তার জন্য একটি সুপারিশ প্রদান করে। অনেক ত্রুটির জন্য, প্রস্তাবিত পদক্ষেপ হল সূচকীয় ব্যাকঅফ ব্যবহার করে অনুরোধটি আবার চেষ্টা করা।

আপনি API ডিজাইন গাইডে এই ত্রুটি মডেল এবং এটির সাথে কীভাবে কাজ করবেন সে সম্পর্কে আরও পড়তে পারেন।

কোড এনাম বর্ণনা সুপারিশকৃত পদক্ষেপ
1 CANCELLED অপারেশনটি বাতিল করা হয়েছে, সাধারণত কলার দ্বারা। অপারেশন পুনরায় চালান।
2 UNKNOWN এই ত্রুটিটি ফেরত দেওয়া হতে পারে যখন অন্য ঠিকানা স্থান থেকে প্রাপ্ত একটি Status মান একটি ত্রুটি স্থানের অন্তর্গত হয় যা এই ঠিকানার স্থানটিতে পরিচিত নয়। API ত্রুটি পর্যাপ্ত তথ্য ফেরত না দিলে, ত্রুটিটি এই ত্রুটিতে রূপান্তরিত হতে পারে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
3 INVALID_ARGUMENT ক্লায়েন্ট একটি অবৈধ যুক্তি নির্দিষ্ট করেছে৷ এই ত্রুটি FAILED_PRECONDITION থেকে আলাদা। INVALID_ARGUMENT এমন আর্গুমেন্ট নির্দেশ করে যেগুলি সিস্টেমের অবস্থা নির্বিশেষে সমস্যাযুক্ত, যেমন একটি বিকৃত ফাইলের নাম। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
4 DEADLINE_EXCEEDED অপারেশন শেষ হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। সিস্টেমের অবস্থা পরিবর্তন করে এমন ক্রিয়াকলাপগুলির জন্য, অপারেশনটি সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি ফেরত দেওয়া হতে পারে। উদাহরণস্বরূপ, একটি সার্ভার থেকে একটি সফল প্রতিক্রিয়ার সময়সীমা শেষ হওয়ার জন্য যথেষ্ট দেরি হতে পারে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
5 NOT_FOUND কিছু অনুরোধ করা সত্তা, যেমন একটি FHIR সম্পদ, পাওয়া যায়নি। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
6 ALREADY_EXISTS একটি ক্লায়েন্ট যে সত্তা তৈরি করার চেষ্টা করেছে, যেমন একটি DICOM উদাহরণ, ইতিমধ্যেই বিদ্যমান। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
7 PERMISSION_DENIED কলারের নির্দিষ্ট অপারেশন চালানোর অনুমতি নেই। এই ত্রুটি কোডটি বোঝায় না যে অনুরোধটি বৈধ, অনুরোধ করা সত্তা বিদ্যমান, বা এটি অন্যান্য পূর্বশর্তগুলিকে সন্তুষ্ট করে৷ সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
8 RESOURCE_EXHAUSTED কিছু সম্পদ শেষ হয়ে গেছে, যেমন প্রতি-প্রকল্প কোটা। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন। কোটা সময়ের সাথে উপলব্ধ হতে পারে।
9 FAILED_PRECONDITION অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি কার্যকর করার জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই৷ উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয়, অথবা একটি নন-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
10 ABORTED অপারেশনটি স্থগিত করা হয়েছিল, সাধারণত একটি সিকোয়েন্সার চেক ব্যর্থতা বা লেনদেন বাতিলের মতো একযোগে সমস্যার কারণে। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
11 OUT_OF_RANGE ক্রিয়াকলাপটি বৈধ পরিসীমা অতিক্রম করার চেষ্টা করা হয়েছিল, যেমন ফাইলের শেষ-অন্তে খোঁজা বা পড়া। INVALID_ARGUMENT বিপরীতে, এই ত্রুটিটি এমন একটি সমস্যা নির্দেশ করে যা সিস্টেমের অবস্থা পরিবর্তন হলে ঠিক করা যেতে পারে। সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।
12 UNIMPLEMENTED অপারেশনটি বাস্তবায়িত হয় না বা ড্রাইভ এপিআইতে সমর্থিত/সক্ষম নয়৷ আবার চেষ্টা করবেন না।
13 INTERNAL অভ্যন্তরীণ ত্রুটি. এটি নির্দেশ করে যে অন্তর্নিহিত সিস্টেমে প্রক্রিয়াকরণে একটি অপ্রত্যাশিত ত্রুটির সম্মুখীন হয়েছে৷ সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
14 UNAVAILABLE ড্রাইভ API অনুপলব্ধ৷ এটি সম্ভবত একটি ক্ষণস্থায়ী অবস্থা, যা সূচকীয় ব্যাকঅফের সাথে পুনরায় চেষ্টা করে সংশোধন করা যেতে পারে। মনে রাখবেন যে অ-অদম্য ক্রিয়াকলাপগুলি পুনরায় চেষ্টা করা সর্বদা নিরাপদ নয়। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।
15 DATA_LOSS পুনরুদ্ধারযোগ্য ডেটা ক্ষতি বা দুর্নীতি। আপনার সিস্টেম অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। ডেটা হারানো বা দুর্নীতি হলে সিস্টেম অ্যাডমিনিস্ট্রেটর একজন সহায়তা প্রতিনিধির সাথে যোগাযোগ করতে চাইতে পারেন।
16 UNAUTHENTICATED অনুরোধটির অপারেশনের জন্য বৈধ প্রমাণীকরণ শংসাপত্র নেই৷ সমস্যার সমাধান না করে আবার চেষ্টা করবেন না।