StorageGRID S3 REST APIによるマルチパートアップロードの完了方法
CompleteMultipartUpload オペレーションは、以前にアップロードされた各パートを組み立てることで、オブジェクトのマルチパートアップロードを完了します。
|
|
StorageGRID は、CompleteMultipartUpload の `partNumber`リクエストパラメータにおいて、昇順での連続しない値をサポートします。パラメータは任意の値から開始できます。 |
競合を解決する
2つのクライアントが同じキーに書き込むなど、クライアントのリクエストが競合する場合は、「最新の要求が優先される」方式で解決されます。「最新の要求が優先される」評価のタイミングは、S3クライアントが操作を開始したときではなく、StorageGRID システムが特定のリクエストを完了したときに基づきます。
サポートされているリクエストヘッダー
以下のリクエストヘッダーがサポートされています:
-
x-amz-checksum-sha256 -
x-amz-storage-class`x-amz-storage-class`ヘッダーは、一致する ILM ルールがlink:../ilm/data-protection-options-for-ingest.html["デュアルコミットまたはバランス型取り込みオプション"]を指定している場合に StorageGRID が作成するオブジェクトコピーの数に影響します。
-
STANDARD(デフォルト)ILMルールでデュアルコミットオプションを使用する場合、またはバランスオプションが中間コピーの作成にフォールバックする場合に、デュアルコミット取り込み操作を指定します。
-
REDUCED_REDUNDANCYILMルールでデュアルコミットオプションを使用する場合、またはバランスオプションが中間コピーの作成にフォールバックする場合に、単一コミットの取り込み操作を指定します。
S3オブジェクトロックが有効になっているバケットにオブジェクトを取り込む場合、 `REDUCED_REDUNDANCY`オプションは無視されます。レガシー準拠バケットにオブジェクトを取り込む場合、 `REDUCED_REDUNDANCY`オプションはエラーを返します。StorageGRIDは、コンプライアンス要件を満たすため、常に二重コミットによるデータ取り込みを実行します。
|
|
マルチパートアップロードが15日以内に完了しない場合、その操作は非アクティブとしてマークされ、関連するすべてのデータがシステムから削除されます。 |
|
|
返される `ETag`値はデータのMD5合計ではなく、マルチパートオブジェクトに対するAmazon S3 APIの `ETag`値の実装に従います。 |
サポートされていないリクエストヘッダー
以下のリクエストヘッダーはサポートされていません:
-
If-Match`If-Match header`は受け入れられるが、機能しない。
-
If-None-Match`If-None-Match header`は受け入れられるが、機能しない。
-
x-amz-sdk-checksum-algorithm -
x-amz-trailer
バージョン管理
この操作により、複数パートのアップロードが完了します。バケットでバージョン管理が有効になっている場合、マルチパートアップロードの完了後にオブジェクトバージョンが作成されます。
バケットでバージョン管理が有効になっている場合、一意の `versionId`は、保存されるオブジェクトのバージョンに対して自動的に生成されます。この `versionId`は、 `x-amz-version-id`レスポンスヘッダーを使用してレスポンスにも返されます。
バージョン管理が中断された場合、オブジェクトのバージョンはnull `versionId`で保存され、nullバージョンが既に存在する場合は上書きされます。
|
|
バケットでバージョン管理が有効になっている場合、同じオブジェクトキーに対して同時に複数のマルチパートアップロードが完了した場合でも、マルチパートアップロードが完了すると必ず新しいバージョンが作成されます。バケットでバージョン管理が有効になっていない場合、マルチパートアップロードを開始した後、同じオブジェクトキーに対して別のマルチパートアップロードが先に開始され、完了する可能性があります。バージョン管理されていないバケットでは、最後に完了したマルチパートアップロードが優先されます。 |
レプリケーション、通知、またはメタデータ通知が失敗しました
マルチパートアップロードが行われるバケットがプラットフォームサービス用に構成されている場合、関連付けられたレプリケーションまたは通知アクションが失敗した場合でも、マルチパートアップロードは成功します。
テナントは、オブジェクトのメタデータまたはタグを更新することで、レプリケーションの失敗または通知をトリガーすることができます。テナントは、意図しない変更を避けるために、既存の値を再送信することができます。
"プラットフォームサービスのトラブルシューティング"を参照してください。