このドキュメントでは、Cloud Storage から直接、再開可能なメディア アップロードを クライアント ライブラリを使用できます。
再開可能なメディアのアップロード
大きなメディア ファイルをサーバーにアップロードする場合は、再開可能なメディア アップロードを使用して チャンクごとに送信されます。Google API で生成されるライブラリには、 再開可能なメディア アップロードを操作するためのコンビニエンス メソッドです。
再開可能なメディア アップロードのプロトコルは、再開可能なメディア アップロードと類似しています。 (Google Drive API ドキュメントに記載)のプロトコルを使用します。
プロトコル設計
次のシーケンス��は、再開可能なメディア アップロード プロトコルの仕組みを示しています。
実装の詳細
主なクラスは、次のとおりです。 MediaHttpUploader MediaHttpProgressListener をご覧ください。
サービス固有の生成されたライブラリのメソッドに mediaUpload
が含まれている場合
パラメータ(ディスカバリ ドキュメント)
その場合は、これらのメソッド用にコンビニエンス メソッドが作成され、
InputStreamContent
渡します。(Google API でのメディア アップロードの使用について詳しくは、
検出サービスについては、以下をご覧ください。
メディア アップロード。
たとえば、Drive API の insert
メソッドなどです。
は mediaUpload
をサポートしています。次のコードを使用してファイルをアップロードできます。
class CustomProgressListener implements MediaHttpUploaderProgressListener { public void progressChanged(MediaHttpUploader uploader) throws IOException { switch (uploader.getUploadState()) { case INITIATION_STARTED: System.out.println("Initiation has started!"); break; case INITIATION_COMPLETE: System.out.println("Initiation is complete!"); break; case MEDIA_IN_PROGRESS: System.out.println(uploader.getProgress()); break; case MEDIA_COMPLETE: System.out.println("Upload is complete!"); } } } File mediaFile = new File("/tmp/driveFile.jpg"); InputStreamContent mediaContent = new InputStreamContent("image/jpeg", new BufferedInputStream(new FileInputStream(mediaFile))); mediaContent.setLength(mediaFile.length()); Drive.Files.Insert request = drive.files().insert(fileMetadata, mediaContent); request.getMediaHttpUploader().setProgressListener(new CustomProgressListener()); request.execute();
再開可能なメディア アップロード機能を、サービス固有の 表示できます。次に例を示します。
File mediaFile = new File("/tmp/Test.jpg"); InputStreamContent mediaContent = new InputStreamContent("image/jpeg", new BufferedInputStream(new FileInputStream(mediaFile))); mediaContent.setLength(mediaFile.length());MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, transport, httpRequestInitializer); uploader.setProgressListener(new CustomProgressListener()); HttpResponse response = uploader.upload(requestUrl); if (!response.isSuccessStatusCode()) { throw GoogleJsonResponseException(jsonFactory, response); }
メディアの直接アップロード
再開可能なメディアのアップロードはデフォルトで有効になっていますが、無効にして 直接メディア アップロードを使用します。たとえば、小さいファイルをアップロードする場合などです。直接 メディア アップロードは 1.9.0-betaで導入されました。 Java 用 Google API クライアント ライブラリのバージョンです。
直接メディア アップロードでは、1 回の HTTP リクエストでファイル全体がアップロードされますが、 再開可能なメディア アップロード プロトコル。複数のリクエストでファイルをアップロードします。 直接アップロードを行うと、HTTP リクエストの数は減りますが、 大規模なプロジェクトで発生する可能性のある障害(接続の障害など)の アップロードします。
メディアの直接アップロードの使用方法は、前述の 再開可能なメディアのアップロードと、MediaHttpUploader を指示する次の呼び出し 直接アップロードのみを行う場合:
mediaHttpUploader.setDirectUploadEnabled(true);