このページでは、Cloud Storage での XML API マルチパート アップロードについて説明します。このアップロード メソッドでは、ファイルを分割してアップロードし、最終リクエストを使用して単一のオブジェクトにまとめます。XML API マルチパート アップロードは、Amazon S3 マルチパート アップロードと互換性があります。
概要
XML API マルチパート アップロードを使用すると、データを複数のパートでアップロードし、最終的なオブジェクトにできます。特に大きなファイルの場合、この動作にはいくつかのメリットがあります。
同時に部分をアップロードすることで、データ全体のアップロード時間を短縮できます。
いずれかのアップロード処理が失敗した場合、最初からやり直すのではなく、オブジェクト全体の中の一部を再アップロードするだけで済みます。
合計ファイルサイズは事前に指定されないため、XML API マルチパート アップロードは、ストリーミング アップロードまたはアップロード中のデータ圧縮に使用できます。
XML API マルチパート アップロードには、必要な 3 つのステップがあります。
POST
リクエストを使用してアップロードを開始します。このリクエストには、完了したときにオブジェクトが持つメタデータを指定します。レスポンスでは、アップロードに関連付けられた後続のすべてのリクエストで使用するUploadId
が返されます。1 つ以上の
PUT
リクエストを使用してデータをアップロードします。POST
リクエストを使用してアップロードを完了します。このリクエストは、同じ名前を持つバケット内の既存のオブジェクトを上書きします。
マルチパート アップロードとアップロードされたパーツが、バケット内で未完成状態やアイドル状態になっている時間に上限はありません。
- 正常にアップロードされたパーツは、毎月のストレージ使用量にカウントされます。
- 中止されたマルチパート アップロードの蓄積を防ぐには、オブジェクトのライフサイクル管理を使用して、指定された期間に達したときにマルチパート アップロードを自動的に削除します。
考慮事項
XML API マルチパート アップロードを使用する場合、次の制限が適用されます。
- パートの最小サイズと最大サイズ、完了したアップロードの構成に使用できるパートには、上限があります。
- 前提条件はリクエストでサポートされません。
- この方法でアップロードされたオブジェクトには、MD5 ハッシュは存在しません。
- このアップロード方法は、Google Cloud コンソールまたは Google Cloud CLI ではサポートされていません。
XML API マルチパート アップロードを使用する場合は、次の点に注意してください。
XML API マルチパート アップロードには、特定の IAM 権限があります。カスタム IAM ロールを使用する場合は、これらのロールに必要な権限が付与されていることを確認してください。
アップロードの開始とパートのアップロードを行うことはできますが、リクエストが記録保持または未完成保持期間を持つオブジェクトを上書きする場合、アップロード完了のリクエストはエラーになります。
バケットで実行中のアップロードを一覧取得することもできますが、完了したアップロードだけがバケット内の通常のオブジェクト リストに表示されます。
アップロードしたパートが使用されなかった場合、早期削除料金の対象となることがあります。
クライアント ライブラリで XML API マルチパート アップロードを使用する方法
このセクションでは、XML API マルチパート アップロードをサポートするクライアント ライブラリを使用してアップロードを行う方法について説明します。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java クライアント ライブラリは XML API マルチパート アップロードをサポートしていません。代わりに、並列複合アップロードを使用します。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
XML API マルチパート アップロードは、uploadFileInChunks
メソッドを使用して実行できます。次に例を示します。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
XML API マルチパート アップロードは、upload_chunks_concurrently
メソッドを使用して実行できます。次に例を示します。
次のステップ
- Cloud Storage のその他のアップロード方法を確認する。
- 切り捨て型指数バックオフと、リクエストを再試行するタイミングについて学習する。