फिर से शुरू किए जा सकने वाले मीडिया डाउनलोड

जब आप सर्वर से बड़ी मीडिया फ़ाइल डाउनलोड करते हैं, तो इसका इस्तेमाल करें फिर से शुरू किया जा सकने वाला मीडिया डाउनलोड भी शामिल है. Google API जनरेट की गई लाइब्रेरी में, फिर से शुरू किए जाने लायक गेम से इंटरैक्ट करने के लिए आसान तरीके मौजूद होते हैं मीडिया डाउनलोड.

फिर से शुरू किया जा सकने वाला मीडिया डाउनलोड प्रोटोकॉल, फिर से शुरू किए जा सकने वाले मीडिया अपलोड के जैसा ही होता है प्रोटोकॉल, जिसकी जानकारी इसमें दी गई है Google Drive API दस्तावेज़.

क्रियान्वयन विवरण

MediaHttpDownloader और MediaHttpDownloaderProgressListener की मुख्य कैटगरी हैं. मीडिया कॉन्टेंट को अलग-अलग हिस्सों में डाउनलोड किया जाता है और डेटा को कॉन्फ़िगर किया जा सकता है. अगर कोई अगर अनुरोध में सर्वर की गड़बड़ी होती है, तो अनुरोध फिर से करने की कोशिश की जाती है.

यदि सेवा विशिष्ट रूप से जनरेट की गई लाइब्रेरी में मौजूद विधियां डिस्कवरी दस्तावेज़, फिर एक यह विकल्प इन तरीकों के लिए बनाया गया है, जो OutputStream. (Google API डिस्कवरी सेवा के साथ मीडिया डाउनलोड करने के बारे में ज़्यादा जानने के लिए, देखें मीडिया डाउनलोड.)

उदाहरण के लिए:

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);

सीधे मीडिया डाउनलोड करें

फिर से शुरू किए जाने लायक मीडिया डाउनलोड करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. हालांकि, आप इसे बंद करके इसका इस्तेमाल कर सकते हैं के बजाय, डायरेक्ट मीडिया डाउनलोड. डायरेक्ट मीडिया डाउनलोड की सुविधा 1.9.0-beta के लिए Google API क्लाइंट लाइब्रेरी का एक वर्शन है.

डायरेक्ट मीडिया डाउनलोड, पूरे मीडिया कॉन्टेंट को एक एचटीटीपी अनुरोध में डाउनलोड करता है, जैसे कि यह फिर से शुरू होने वाले मीडिया डाउनलोड प्रोटोकॉल के उलट है, जो एक से ज़्यादा अनुरोध. सीधे तौर पर डाउनलोड करने से एचटीटीपी अनुरोधों की संख्या कम हो जाती है. हालांकि, इससे कनेक्शन के काम न करने जैसे काम न होने की संभावना बढ़ जाती है बड़ी संख्या में डाउनलोड किए जा सकते हैं.

इस्तेमाल, ऊपर बताए गए तरीके जैसा ही है. साथ ही, इसमें ये चीज़ें भी शामिल हैं कॉल, जिससे पता चलता है कि MediaHttpDownloader डायरेक्ट डाउनलोड करने के लिए:

mediaHttpDownloader.setDirectDownloadEnabled(true);