Complete Multipart Upload の実行
Complete Multipart Upload 処理では、以前にアップロードされたパートをアセンブルすることで、オブジェクトのマルチパートアップロードを完了します。
競合を解決します
同じキーに書き込む 2 つのクライアントなど、競合するクライアント要求は、「 latest-wins 」ベースで解決されます。「 latest-wins 」評価は、 S3 クライアントが処理を開始するタイミングではなく、 StorageGRID システムが特定の要求を完了したタイミングで行われます。
要求ヘッダー
x-amz-storage-class' 要求ヘッダーがサポートされています。一致する ILM ルールで取り込み動作に Dual commit または Balanced が指定されている場合に StorageGRID で作成されるオブジェクトコピーの数に影響します
-
「 standard 」
(デフォルト) ILM ルールで Dual commit オプションが使用されている場合、または Balanced オプションによって中間コピーが作成される場合に、デュアルコミットの取り込み処理を指定します。
-
「 reduced_redundancy 」
ILM ルールで Dual commit オプションが使用されている場合、または Balanced オプションによって中間コピーが作成される場合に、シングルコミットの取り込み処理を指定します。
S3 オブジェクトロックが有効な状態でオブジェクトをバケットに取り込む場合、「 REDUCED_REDUNDANCY 」オプションは無視されます。オブジェクトをレガシー準拠バケットに取り込む場合、「 reduced_redundancy 」オプションはエラーを返します。StorageGRID では、常にデュアルコミットの取り込みが実行され、コンプライアンス要件が満たされます。
|
マルチパートアップロードが 15 日以内に完了しないと、非アクティブな処理としてマークされ、関連するすべてのデータがシステムから削除されます。 |
|
返される「 ETag 」の値は、データの MD5 サムではなく、 Amazon S3 API のマルチパートオブジェクト用の「 ETag 」値の実装に従います。 |
バージョン管理
マルチパートアップロードは、この処理で完了します。バケットでバージョン管理が有効になっている場合は、マルチパートアップロードの完了時にオブジェクトのバージョンが作成されます。
バケットでバージョン管理が有効になっている場合、格納されるオブジェクトのバージョンごとに一意の「 versionID 」が自動的に生成されます。この 'versionId' は 'x-amz-version-id' 応答ヘッダーを使用した応答でも返されます
バージョン管理が一時停止されている場合、オブジェクトのバージョンは null の「 versionID 」で格納され、 null のバージョンがすでに存在する場合は上書きされます。
|
バケットでバージョン管理が有効になっているときは、同じオブジェクトキーで同時に複数のマルチパートアップロードが実行されている場合でも、マルチパートアップロードが完了するたびに常に新しいバージョンが作成されます。バケットでバージョン管理が有効になっていないときは、マルチパートアップロードの開始後に、同じオブジェクトキーで別のマルチパートアップロードが開始されて先に完了することがあります。バージョン管理が有効になっていないバケットでは、最後に完了したマルチパートアップロードが優先されます。 |
レプリケーション、通知、またはメタデータ通知に失敗しました
マルチパートアップロードが行われるバケットでプラットフォームサービスが設定されている場合、関連するレプリケーション操作や通知操作が失敗してもマルチパートアップロードは正常に実行されます。
この状況が発生すると、 Total Events ( SMTT )のアラームがグリッドマネージャで生成されます。Last Event メッセージに、通知が失敗した最後のオブジェクトについて、「 Failed to publish notifications for bucket-name object key 」と表示されます。(このメッセージを表示するには、 * nodes * > * _ Storage Node_* > * Events * を選択します。表の一番上に Last Event が表示されます)。 イベント・メッセージは /var/local/log/bycast-err.log にも表示されます
テナントでは、オブジェクトのメタデータまたはタグを更新することで、失敗したレプリケーションまたは通知をトリガーできます。テナントでは、既存の値を再送信し、不要な変更を回避できます。