PUT Object - Copy

S3 PUT Object - Copy要求を使用すると、すでにS3に格納されているオブジェクトのコピーを作成できます。PUT Object - Copy処理は、GETを実行してからPUTを実行する処理と同じです。

競合の解決

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

オブジェクトのサイズ

StorageGRIDは、サイズが最大5TBまでのオブジェクトをサポートします。

注:CloudMirrorレプリケーション サービスでデスティネーション バケットにレプリケートできるオブジェクトの最大サイズは、625GiB(671,088,640,000バイト)です。CloudMirrorのレプリケーション設定XMLに指定されているフィルタ条件に一致しても、このサイズよりも大きいオブジェクトは取り込まれません。

ユーザ メタデータ内のUTF-8文字

要求のユーザ定義メタデータのキー名または値に(エスケープされていない)UTF-8文字が含まれている場合、StorageGRIDの動作は定義されていません。

ユーザ定義メタデータのキー名または値に含まれているエスケープされたUTF-8文字は、StorageGRIDで解析も解釈もされません。エスケープされたUTF-8文字はASCII文字として扱われます。

サポートされる要求ヘッダー

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

サポートされない要求ヘッダー

次の要求ヘッダーはサポートされていません。

ストレージ クラスのオプション

x-amz-storage-class要求ヘッダーがサポートされています。この要求ヘッダーは、一致するILMルールで取り込み動作にDual commitまたはBalancedが指定されている場合にStorageGRIDで作成されるオブジェクト コピーの数に影響します。

サーバ側の暗号化を行うための要求ヘッダー

サーバ側の暗号化を使用する場合は、ソース オブジェクトが暗号化されているかどうか、またターゲット オブジェクトを暗号化するかどうかによって、指定する要求ヘッダーが異なります。

PUT Object - Copyでのx-amz-copy-sourceの使用

x-amz-copy-sourceヘッダーで指定されたソースのバケットおよびキーがデスティネーションのバケットおよびキーと異なる場合は、ソースのオブジェクト データのコピーがデスティネーションに書き込まれます。

ソースとデスティネーションが同じ場合は、x-amz-metadata-directiveヘッダーでREPLACEが指定されていれば、オブジェクトのメタデータが要求で指定されたメタデータの値に更新されます。この場合、StorageGRIDはオブジェクトを再取り込みしません。これには2つの大きな影響があります。
  • PUT Object - Copyを使用して既存のオブジェクトを暗号化したり、既存のオブジェクトの暗号化を変更したりできなくなります。x-amz-server-side-encryptionヘッダーまたはx-amz-server-side-encryption-customer-algorithmヘッダーを指定すると、StorageGRIDは要求を拒否し、XNotImplementedを返します。
  • 一致するILMルールで指定されている取り込み動作のオプションが使用されません。更新によって発生したオブジェクト配置の変更は、通常のバックグラウンドILMプロセスでILMが再評価されるときに実施されます。

    このため、ILMルールの取り込み動作にStrictオプションが指定されている場合、必要なオブジェクト配置を実行できないと(たとえば、新たに必要となった場所を使用できない場合)、アクションは実行されません。更新されたオブジェクトは、必要な配置を実行可能になるまで元の場所にとどまります。

バージョン管理

ソースのバケットでバージョン管理が有効になっている場合、x-amz-copy-sourceヘッダーを使用してオブジェクトの最新バージョンをコピーできます。オブジェクトの特定のバージョンをコピーするには、コピーするバージョンをversionIdサブリソースを使用して明示的に指定する必要があります。デスティネーションのバケットでバージョン管理が有効になっている場合は、生成されたバージョンがx-amz-version-id応答ヘッダーで返されます。ターゲットのバケットでバージョン管理が一時停止中の場合は、x-amz-version-idの値として「null」が返されます。