Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

StorageGRIDがオブジェクトのS3 REST API操作を実装する方法

このセクションでは、StorageGRID システムがオブジェクトに対して S3 REST API 操作を実装する方法について説明します。

以下の条件は、すべてのオブジェクト操作に適用されます。

  • StorageGRID "一貫性値" は、以下の操作を除き、オブジェクトに対するすべての操作でサポートされています。

    • GetObjectAcl

    • OPTIONS /

    • PutObjectLegalHold

    • PutObjectRetention

    • SelectObjectContent

  • 2つのクライアントが同じキーに書き込むなど、クライアントのリクエストが競合する場合は、「最新の要求が優先される」方式で解決されます。「最新の要求が優先される」評価のタイミングは、S3クライアントが操作を開始したときではなく、StorageGRID システムが特定のリクエストを完了したときに基づきます。

  • StorageGRID バケット内のすべてのオブジェクトは、匿名ユーザーまたは別のアカウントによって作成されたオブジェクトを含め、バケットの所有者が所有します。

次の表は、StorageGRID が S3 REST API オブジェクト操作を実装する方法を示しています。

処理 導入

DeleteObject

DeleteObjectリクエストを処理する際、StorageGRIDはオブジェクトのすべてのコピーを、保存されているすべての場所から直ちに削除しようとします。成功した場合、StorageGRIDはクライアントに即座に応答を返します。すべてのコピーを30秒以内に削除できない場合(たとえば、場所が一時的に利用できない場合)、StorageGRIDは削除対象のコピーをキューに追加し、その後クライアントに成功を通知します。

制限事項
  • 多要素認証(MFA)とレスポンスヘッダー `x-amz-mfa`はサポートされていません。

  • `If-None`および `If-None-Match`ヘッダーは受け入れられますが、機能しません。

バージョン管理

特定のバージョンを削除するには、リクエスト者はバケットの所有者である必要があり、 `versionId`サブリソースを使用する必要があります。このサブリソースを使用すると、バージョンが完全に削除されます。 `versionId`が削除マーカーに対応する場合、レスポンスヘッダー `x-amz-delete-marker`は `true`に設定されて返されます。

  • バージョン管理が有効になっているバケットで `versionId`サブリソースを指定せずにオブジェクトを削除すると、削除マーカーが生成されます。削除マーカーの `versionId`は `x-amz-version-id`レスポンスヘッダーを使用して返され、 `x-amz-delete-marker`レスポンスヘッダーは `true`に設定されて返されます。

  • バージョン管理が停止されているバケットで `versionId`サブリソースを指定せずにオブジェクトを削除すると、既に存在する「null」バージョンまたは「null」削除マーカーが完全に削除され、新しい「null」削除マーカーが生成されます。 `x-amz-delete-marker`レスポンスヘッダーは `true`に設定されて返されます。

    :場合によっては、オブジェクトに複数の削除マーカーが存在する可能性があります。

GOVERNANCE モードでオブジェクトのバージョンを削除する方法については、"S3 REST APIを使用してS3オブジェクトロックを設定する"を参照してください。

DeleteObjects

(以前は「複数オブジェクトの削除」という名称でした)

多要素認証(MFA)とレスポンスヘッダー `x-amz-mfa`はサポートされていません。

同じリクエストメッセージ内で複数のオブジェクトを削除できます。

GOVERNANCE モードでオブジェクトのバージョンを削除する方法については、"S3 REST APIを使用してS3オブジェクトロックを設定する"を参照してください。

DeleteObjectTagging

`tagging`サブリソースを使用して、オブジェクトからすべてのタグを削除します。
バージョン管理

`versionId`クエリパラメータがリクエストに指定されていない場合、この操作はバージョン管理されたバケット内のオブジェクトの最新バージョンからすべてのタグを削除します。オブジェクトの現在のバージョンが削除マーカーである場合、「MethodNotAllowed」ステータスが返され、 `x-amz-delete-marker`レスポンスヘッダーは `true`に設定されます。

GetObject

GetObjectAcl

アカウントに必要なアクセス認証情報が提供された場合、操作は肯定応答とID、DisplayName、およびオブジェクト所有者のPermissionを返し、所有者がオブジェクトへの完全なアクセス権を持っていることを示します。

GetObjectLegalHold

GetObjectRetention

GetObjectTagging

`tagging`サブリソースを使用して、オブジェクトのすべてのタグを返します。
バージョン管理

`versionId`クエリパラメータがリクエストで指定されていない場合、この操作はバージョン管理されたバケット内のオブジェクトの最新バージョンからすべてのタグを返します。オブジェクトの現在のバージョンが削除マーカーである場合、「MethodNotAllowed」ステータスが返され、 `x-amz-delete-marker`レスポンスヘッダーは `true`に設定されます。

HeadObject

RestoreObject

PutObject

CopyObject

(以前は PUT Object - Copy という名称でした)

PutObjectLegalHold

PutObjectRetention

PutObjectTagging

`tagging`サブリソースを使用して、既存のオブジェクトに一連のタグを追加します。
オブジェクトタグの制限

新規オブジェクトをアップロードする際にタグを追加することも、既存のオブジェクトにタグを追加することもできます。StorageGRID と Amazon S3 はどちらも、各オブジェクトにつき最大 10 個のタグをサポートします。オブジェクトに関連付けられたタグには、一意のタグキーが必要です。タグキーは最大 128 Unicode 文字、タグ値は最大 256 Unicode 文字で構成できます。キーと値は大文字と小文字を区別します。

タグの更新と取り込み動作

PutObjectTagging を使用してオブジェクトのタグを更新する場合、StorageGRID はオブジェクトを再取り込みしません。これは、一致する ILM ルールで指定された「取り込み動作」オプションが使用されないことを意味します。更新によってトリガーされるオブジェクト配置の変更は、通常のバックグラウンド ILM プロセスによって ILM が再評価された際に反映されます。

これは、ILMルールで取り込み動作に「Strict」オプションを使用している場合、必要なオブジェクトの配置ができない場合(たとえば、新たに必要となった場所が利用できない場合など)は、何もアクションが実行されないことを意味します。更新されたオブジェクトは、必要な配置が可能になるまで、現在の配置を維持します。

競合の解決

2つのクライアントが同じキーに書き込むなど、クライアントのリクエストが競合する場合は、「最新の要求が優先される」方式で解決されます。「最新の要求が優先される」評価のタイミングは、S3クライアントが操作を開始したときではなく、StorageGRID システムが特定のリクエストを完了したときに基づきます。

バージョン管理

`versionId`クエリパラメータがリクエストに指定されていない場合、この操作はバージョン管理されたバケット内のオブジェクトの最新バージョンにタグを追加します。オブジェクトの現在のバージョンが削除マーカーである場合、「MethodNotAllowed」ステータスが返され、 `x-amz-delete-marker`レスポンスヘッダーが `true`に設定されます。

SelectObjectContent