マルチパート アップロードの処理

注:1つのバケットに対して同時に実行するマルチパート アップロードが1,000件を超えないようにしてください。1,000件を超えると、そのバケットに対するList Multipart Uploadsのクエリで完全な結果が返されないことがあります。
注:マルチパートの最後のパート以外の各パートのサイズは5MB~5GBでなければなりません。最後のパートは5MB未満でもかまいません。これはクライアント側の制限であり、StorageGRID Webscaleでは強制されません。

マルチパート アップロードでは、すべての処理でStorageGRID Webscaleの整合性制御がサポートされます。Consistency-Controlヘッダーの使用については、StorageGRID WebscaleでのS3 REST APIの実装を参照してください。

処理 実装
List Multipart Uploads

次の要求ヘッダーがサポートされています。

  • encoding-type
  • max-uploads
  • key-marker
  • prefix
  • upload-id-marker

delimiter要求パラメータはサポートされていません。

バージョン管理

マルチパート アップロードは、アップロードの開始、アップロードのリストの表示、パートのアップロード、アップロードしたパートの整理、およびアップロードの完了の個別の処理に分けられます。オブジェクトの作成とバージョンの管理(該当する場合)は、Complete Multipart Upload処理が実行された時点で行われます。

Initiate Multipart Upload

x-amz-storage-class要求ヘッダーがサポートされています。指定できる値は次のとおりです。

  • STANDARD

    デフォルト。デュアルコミットの取り込み処理を指定します。

  • REDUCED_REDUNDANCY

    シングルコミットの取り込み処理を指定します。

注:REDUCED_REDUNDANCYストレージ クラスは、ILMポリシーなどの他の効率的な方法でデータがレプリケートされている場合に冗長なストレージを制限するためのオプションです。REDUCED_REDUNDANCY値を指定しても、指定されているILMポリシーに影響はなく、StorageGRID Webscaleシステムに格納されるデータの冗長性が低下するわけではありません。
Initiate Multipart Upload(続き)
注意:
REDUCED_REDUNDANCYを使用してオブジェクトを取り込むときは、オブジェクト データのコピーが最初に1つしか作成されないことに注意してください。単一のコピーが作成されたストレージ ノードで障害が発生した場合、ILMをまだ満たしていないと、データが失われて回復できなくなります。

次の要求ヘッダーがサポートされています。

  • Content-Type
  • x-amz-meta-ユーザ定義のメタデータの名前と値のペア

オブジェクトの作成時間を記録するには、ILMルールの参照時間で[User Defined Creation Time]オプションを使用できるように、x-amz-meta-creation-timeという名前のユーザ定義のヘッダーに値を格納する必要があります。たとえば、「x-amz-meta-creation-time=1443399726」などです。このフィールドの値は、1970年1月1日からの秒数となります。詳細については、『管理者ガイド』の「参照時間」を参照してください。

x-amz-server-side-encryptionヘッダーは、Initiate Multipart Upload要求では直接はサポートされません。マルチパート アップロードでサーバ側の暗号化が必要な場合は、それぞれのUpload Partでx-amz-server-side-encryptionヘッダーを指定する必要があります。このヘッダーをInitiate Multipart Uploadで指定した場合、要求は失敗します。

次の要求ヘッダーはサポートされていません。指定した場合はXNotImplementedが返されます。

  • x-amz-website-redirect-location
  • x-amz-server-side-encryption-customer-key

バージョン管理

マルチパート アップロードは、アップロードの開始、アップロードのリストの表示、パートのアップロード、アップロードしたパートの整理、およびアップロードの完了の個別の処理に分けられます。オブジェクトの作成とバージョンの管理(該当する場合)は、Complete Multipart Upload処理が実行された時点で行われます。

Upload Part

次の要求ヘッダーがサポートされています。

  • Content-Length
  • x-amz-server-side-encryption

    マルチパート アップロードでサーバ側の暗号化を指定する必要がある場合は、それぞれのUpload Partでx-amz-server-side-encryptionを個別に指定する必要があります。

次の要求ヘッダーはサポートされていません。指定した場合はXNotImplementedが返されます。

  • x-amz-server-side-encryption-customer-algorithm
  • x-amz-server-side-encryption-customer-key
  • x-amz-server-side-encryption-customer-key-MD5

バージョン管理

マルチパート アップロードは、アップロードの開始、アップロードのリストの表示、パートのアップロード、アップロードしたパートの整理、およびアップロードの完了の個別の処理に分けられます。オブジェクトの作成とバージョンの管理(該当する場合)は、Complete Multipart Upload処理が実行された時点で行われます。

Upload Part - Copy

Amazon S3 REST APIのすべての動作が実装されています。

StorageGRID Webscaleシステム内でx-amz-copy-source-rangeで指定されたデータの読み取りと書き込みを行います。

次の要求ヘッダーがサポートされています。

  • x-amz-copy-source-if-match
  • x-amz-copy-source-if-none-match
  • x-amz-copy-source-if-unmodified-since
  • x-amz-copy-source-if-modified-since

バージョン管理

マルチパート アップロードは、アップロードの開始、アップロードのリストの表示、パートのアップロード、アップロードしたパートの整理、およびアップロードの完了の個別の処理に分けられます。オブジェクトの作成とバージョンの管理(該当する場合)は、Complete Multipart Upload処理が実行された時点で行われます。

Complete Multipart Upload

競合の解決

競合するクライアント要求(2つのクライアントが同じキーに書き込む場合など)は、「latest-wins」ベースで解決されます。「latest-wins」評価は、S3クライアントが処理を開始するタイミングではなく、StorageGRID Webscaleシステムが特定の要求を完了したタイミングで行われます。

要求ヘッダー

x-amz-storage-class要求ヘッダーがサポートされています。指定できる値は次のとおりです。

  • STANDARD

    デフォルト。デュアルコミットの取り込み処理を指定します。

  • REDUCED_REDUNDANCY

    シングルコミットの取り込み処理を指定します。

注:REDUCED_REDUNDANCYストレージ クラスは、ILMポリシーなどの他の効率的な方法でデータがレプリケートされている場合に冗長なストレージを制限するためのオプションです。REDUCED_REDUNDANCY値を指定しても、指定されているILMポリシーに影響はなく、StorageGRID Webscaleシステムに格納されるデータの冗長性が低下するわけではありません。
注意:
ILMポリシーを設定する際、REDUCED_REDUNDANCYが設定されたデータについては、ILMポリシーを満たすまではオブジェクト データのコピーが1つしかレプリケートされないことに十分に注意してください。ILMポリシーを満たす前に、単一のコピーが作成されたストレージ ノードで障害が発生すると、データが失われて回復できなくなります。
注意:マルチパート アップロードが15日以内に完了しないと、非アクティブな処理としてマークされ、関連するすべてのデータがシステムから削除されます。
注:返されるETagの値は、データのMD5サムではなく、Amazon S3 APIのマルチパート オブジェクト用のETag値の実装に従います。
Complete Multipart Upload(続き)

バージョン管理

マルチパート アップロードは、この処理で完了します。バケットでバージョン管理が有効になっている場合は、マルチパート アップロードの完了時にオブジェクトのバージョンが作成されます。

バケットでバージョン管理が有効になっている場合、格納されるオブジェクトのバージョンごとに一意のversionIdが自動的に生成されます。このversionIdは、x-amz-version-id応答ヘッダーを使用した応答でも返されます。

バージョン管理が一時停止中の場合は、versionIdがnullの状態でオブジェクトのバージョンが格納され、nullのバージョンがすでに存在する場合は上書きされます。

注:バケットでバージョン管理が有効になっているときは、同じオブジェクト キーで同時に複数のマルチパート アップロードが実行されている場合でも、マルチパート アップロードが完了するたびに常に新しいバージョンが作成されます。バケットでバージョン管理が有効になっていないときは、マルチパート アップロードの開始後に、同じオブジェクト キーで別のマルチパート アップロードが開始されて先に完了することがあります。バージョン管理が有効になっていないバケットでは、最後に完了したマルチパート アップロードが優先されます。

レプリケーション、通知、またはメタデータ通知の失敗

マルチパート アップロードが行われるバケットでプラットフォーム サービスが設定されている場合、関連するレプリケーション操作や通知操作が失敗してもマルチパート アップロードは正常に実行されます。

この状況が発生すると、グリッド管理インターフェイスでTotal Events(SMTT)のアラームが生成されます。[Grid] > [site] > [Storage Node] > [SSM] > [Events]のLast Eventメッセージに、通知が失敗した最後のオブジェクトについて、「Failed to publish notifications for bucket-name object keyと表示されます。イベント メッセージは、次のファイルにも記録されます。 /var/local/log/bycasterr.log

テナントでは、オブジェクトのメタデータまたはタグを更新することで、失敗したレプリケーションまたは通知をトリガーできます。既存の値を再送信すると、不要な変更を回避できます。

Abort Multipart Upload Amazon S3 REST APIのすべての動作が実装されています。
List Parts Amazon S3 REST APIのすべての動作が実装されています。