পুনরায় শুরুযোগ্য মিডিয়া ডাউনলোড

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

পুনঃসূচনাযোগ্য মিডিয়া ডাউনলোড প্রোটোকলটি পুনরায় শুরু করা মিডিয়া আপলোড প্রোটোকলের অনুরূপ, যা Google ড্রাইভ API ডকুমেন্টেশনে বর্ণিত হয়েছে।

বাস্তবায়নের বিবরণ

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

যদি পরিষেবা-নির্দিষ্ট উত্পন্ন লাইব্রেরিগুলির পদ্ধতিগুলি আবিষ্কার নথিতে ডাউনলোড সমর্থন করে, তাহলে এই পদ্ধতিগুলির জন্য একটি সুবিধাজনক ডাউনলোড পদ্ধতি তৈরি করা হয় যা একটি আউটপুট স্ট্রিমে নেয়৷ (Google APIs ডিসকভারি সার্ভিসের সাথে মিডিয়া ডাউনলোড ব্যবহার সম্পর্কে আরও জানতে, মিডিয়া ডাউনলোড দেখুন।)

যেমন:

class CustomProgressListener implements MediaHttpDownloaderProgressListener {
  public void progressChanged(MediaHttpDownloader downloader) {
    switch (downloader.getDownloadState()) {
      case MEDIA_IN_PROGRESS:
        System.out.println(downloader.getProgress());
        break;
      case MEDIA_COMPLETE:
        System.out.println("Download is complete!");
    }
  }
}

OutputStream out = new FileOutputStream("/tmp/driveFile.jpg");

DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.executeMediaAndDownloadTo(out);

আপনি পরিষেবা-নির্দিষ্ট তৈরি করা লাইব্রেরি ছাড়াই এই বৈশিষ্ট্যটি ব্যবহার করতে পারেন। এখানে একটি উদাহরণ:

OutputStream out = new FileOutputStream("/tmp/Test.jpg");

MediaHttpDownloader downloader = new MediaHttpDownloader(transport, httpRequestInitializer);
downloader.setProgressListener(new CustomProgressListener());
downloader.download(requestUrl, out);

সরাসরি মিডিয়া ডাউনলোড

পুনঃসূচনাযোগ্য মিডিয়া ডাউনলোড ডিফল্টরূপে সক্ষম, তবে আপনি এটি নিষ্ক্রিয় করতে পারেন এবং পরিবর্তে সরাসরি মিডিয়া ডাউনলোড ব্যবহার করতে পারেন, উদাহরণস্বরূপ যদি আপনি একটি ছোট ফাইল ডাউনলোড করছেন। জাভার জন্য Google API ক্লায়েন্ট লাইব্রেরির 1.9.0-বিটা সংস্করণে সরাসরি মিডিয়া ডাউনলোড চালু করা হয়েছিল।

সরাসরি মিডিয়া ডাউনলোড একটি HTTP অনুরোধে সমগ্র মিডিয়া সামগ্রী ডাউনলোড করে, পুনঃসূচনাযোগ্য মিডিয়া ডাউনলোড প্রোটোকলের বিপরীতে, যা একাধিক অনুরোধে ডাউনলোড করতে পারে। একটি সরাসরি ডাউনলোড করা HTTP অনুরোধের সংখ্যা হ্রাস করে কিন্তু ব্যর্থতার সম্ভাবনা বৃদ্ধি করে (যেমন সংযোগ ব্যর্থতা) যা বড় ডাউনলোডের সাথে ঘটতে পারে।

ব্যবহার উপরে বর্ণিত হিসাবে একই, এছাড়াও নিম্নলিখিত কল যা MediaHttpDownloader কে সরাসরি ডাউনলোড করতে বলে:

mediaHttpDownloader.setDirectDownloadEnabled(true);