再開可能なメディア ダウンロード
コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
サーバーからサイズの大きなメディア ファイルをダウンロードする場合は、 再開可能なメディアのダウンロード: ファイル チャンクをチャンクごとにダウンロードします。Google API 生成されたライブラリには、再開可能な API とやり取りするための便利なメソッドが ダウンロードされます。
再開可能なメディアのダウンロード プロトコルは、再開可能なメディアのアップロードと類似しています。 プロトコルについては、 Google Drive API のドキュメント
実装の詳細
主なクラスは MediaHttpDownloader と MediaHttpDownloaderProgressListener です。 メディア コンテンツはチャンク形式でダウンロードされます。チャンクサイズは構成可能です。もし リクエストでサーバーエラーが発生した場合、リクエストは再試行されます。
サービス固有の生成されたライブラリのメソッドが ディスカバリ ドキュメント、 これらのメソッド用に、ダウンロードに便利なダウンロード メソッドが用意されており、 OutputStream。 (Google APIs Discovery Service でのメディア ダウンロードの使用について詳しくは、 メディアのダウンロード。
例:
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 Java 用 Google API クライアント ライブラリのバージョンです。
直接メディア ダウンロードでは、1 回の HTTP リクエストでメディア コンテンツ全体がダウンロードされます。 これとは異なり、再開可能メディア ダウンロード プロトコルは、 できます。直接ダウンロードを行うと、HTTP リクエスト数は削減されますが、 障害(接続障害など)が発生する可能性が高くなる 大量のデータのダウンロードが伴います。
使用方法は上記の説明に加えて、次の内容です 伝える MediaHttpDownloader 直接ダウンロードするには:
mediaHttpDownloader.setDirectDownloadEnabled(true);
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 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);"]]