Devam Ettirilebilir Medya İndirmeleri

Sunucudan büyük bir medya dosyası indirdiğinizde resumable media download işlevini kullanın. Google API'si oluşturulan kitaplıklar, devam ettirilebilir öğelerle etkileşim kurmak için kolaylık yöntemleri içerir. medya indirme.

Devam ettirilebilir medya indirme protokolü, devam ettirilebilir medya yükleme protokolüne benzer Bu, Google Drive API dokümanları.

Uygulama ayrıntıları

Ana ilgi alanları MediaHttpDownloader ve MediaHttpDownloaderProgressListener türleridir. Medya içeriği parçalar halinde indirilir ve parça boyutu yapılandırılabilir. istekte sunucu hatasıyla karşılaşılırsa istek yeniden denenir.

Hizmete özel oluşturulan kitaplıklardaki yöntemler Keşif dokümanı, ardından indirmenin kolay bir şekilde kullanıldığı bu yöntemler için OutputStream'de ekleyebilirsiniz. (Google API'leri Keşif Hizmeti ile medya indirmeyi kullanma hakkında daha fazla bilgi için bkz. Medya indirme.)

Örneğin:

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

Bu özelliği, hizmete özel kitaplıklar olmadan da kullanabilirsiniz. Örnek:

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

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

Doğrudan medya indirme

Devam ettirilebilir medya indirme işlemi varsayılan olarak etkindir, ancak bu özelliği devre dışı bırakıp kullanabilirsiniz. doğrudan medya indirme seçeneğini kullanabilirsiniz (örneğin, küçük bir dosya indiriyorsanız). Doğrudan medya indirme 1.9.0-beta sürümü hakkında daha fazla bilgi edinin.

Doğrudan medya indirme işlemi, medya içeriğinin tamamını tek bir HTTP isteğinde indirir. devam ettirilebilir medya indirme protokolünün aksine. kabul edersiniz. Doğrudan indirme işlemi yapmak HTTP isteklerinin sayısını azaltır ancak bağlantı arızaları gibi indirme sayısını artırır.

Kullanım, yukarıda açıklananlarla aynıdır ve aşağıdakiler geçerlidir: şunu söyleyen çağrı: MediaHttpDownloader yapmak için:

mediaHttpDownloader.setDirectDownloadEnabled(true);