Devam Ettirilebilir Medya İndirmeleri
Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
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);
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);
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-26 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-26 UTC."],[[["\u003cp\u003eDownload large files efficiently with resumable media download, splitting the process into smaller chunks.\u003c/p\u003e\n"],["\u003cp\u003eUtilize the \u003ccode\u003eMediaHttpDownloader\u003c/code\u003e and \u003ccode\u003eMediaHttpDownloaderProgressListener\u003c/code\u003e classes for managing and monitoring downloads.\u003c/p\u003e\n"],["\u003cp\u003eCustomize the download process by implementing a progress listener to track download state and progress.\u003c/p\u003e\n"],["\u003cp\u003eOpt for direct media download for smaller files, combining the download into a single HTTP request.\u003c/p\u003e\n"],["\u003cp\u003eResumable media download is enabled by default, but direct download can be activated using \u003ccode\u003emediaHttpDownloader.setDirectDownloadEnabled(true)\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["When you download a large media file from a server, use\n*resumable media download* to download the file chunk by chunk. The Google API\ngenerated libraries contain convenience methods for interacting with resumable\nmedia download.\n\nThe resumable media download protocol is similar to the resumable media upload\nprotocol, which is described in the\n[Google Drive API documentation](https://developers.google.com/drive/web/manage-uploads#resumable).\n\nImplementation details\n\nThe main classes of interest are [MediaHttpDownloader](https://googleapis.dev/java/google-api-client/latest/com/google/api/client/googleapis/media/MediaHttpDownloader.html) and [MediaHttpDownloaderProgressListener](https://googleapis.dev/java/google-api-client/latest/com/google/api/client/googleapis/media/MediaHttpDownloaderProgressListener.html).\nMedia content is downloaded in chunks, and chunk size is configurable. If a\nserver error is encountered in a request, then the request is retried.\n\nIf methods in the service-specific generated libraries support download in the\n[Discovery document](https://developers.google.com/discovery/v1/using), then a\nconvenient download method is created for these methods that takes in an\n[OutputStream](http://docs.oracle.com/javase/1.5.0/docs/api/org/omg/CORBA/portable/OutputStream.html).\n(For more about using media download with the Google APIs Discovery Service, see\n[Media download](https://developers.google.com/discovery/v1/using#discovery-doc-methods-mediadownload).)\n\nFor example: \n\n class CustomProgressListener implements MediaHttpDownloaderProgressListener {\n public void progressChanged(MediaHttpDownloader downloader) {\n switch (downloader.getDownloadState()) {\n case MEDIA_IN_PROGRESS:\n System.out.println(downloader.getProgress());\n break;\n case MEDIA_COMPLETE:\n System.out.println(\"Download is complete!\");\n }\n }\n }\n\n OutputStream out = new FileOutputStream(\"/tmp/driveFile.jpg\");\n\n DriveFiles.Get request = drive.files().get(fileId);\n request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());\n request.executeMediaAndDownloadTo(out);\n\nYou can also use this feature without service-specific generated libraries.\nHere is an example: \n\n OutputStream out = new FileOutputStream(\"/tmp/Test.jpg\");\n\n MediaHttpDownloader downloader = new MediaHttpDownloader(transport, httpRequestInitializer);\n downloader.setProgressListener(new CustomProgressListener());\n downloader.download(requestUrl, out);\n\nDirect media download\n\nResumable media download is enabled by default, but you can disable it and use\ndirect media download instead, for example if you are downloading a small file.\nDirect media download was introduced in the\n[1.9.0-beta](http://google-api-java-client.blogspot.com/2012/05/version-190-beta-released.html)\nversion of the Google API Client Library for Java.\n\nDirect media download downloads the whole media content in one HTTP request, as\nopposed to the resumable media download protocol, which can download in multiple\nrequests. Doing a direct download reduces the number of HTTP requests but\nincreases the chance of failures (such as connection failures) that can happen\nwith large downloads.\n\nThe usage is the same as what is described above, plus the following\ncall that tells\n[MediaHttpDownloader](https://googleapis.dev/java/google-api-client/latest/com/google/api/client/googleapis/media/MediaHttpDownloader.html)\nto do direct downloads: \n\n mediaHttpDownloader.setDirectDownloadEnabled(true);"]]