削除マーカーの使用 - Amazon Simple Storage Service

削除マーカーの使用

Amazon S3 の削除マーカーは、シンプルな DELETE リクエストで指定された、バージョニングされたオブジェクトのプレースホルダー (マーカー) です。オブジェクトがバージョニングが有効なバケット内にあるため、そのオブジェクトは削除されません。ただし、削除マーカーによって、Amazon S3 はオブジェクトが削除されたかのように動作します。

削除マーカーには他のすべてのオブジェクトと同様にキー名 (またはキー) とバージョン ID があります。ただし、削除マーカーは次のような点で他のオブジェクトとは異なります。

  • 関連付けられたデータがない。

  • アクセスコントロールリスト (ACL) 値に関連付けられていない。

  • データがないため、GET リクエストから何も取得しない (エラー 404 を受け取る)。

  • 削除マーカーで使用できるオペレーションは、Amazon S3 API DELETE コールだけです。これを行うには、適切な権限を持つ AWS Identity and Access Management (IAM) ユーザーまたはロールを使用して DELETE リクエストを行う必要があります。

削除マーカーにより、Amazon S3 内のストレージに対して小額の課金が発生します。削除マーカーのストレージサイズは、その削除マーカーのキー名のサイズと同じです。キー名は一連の Unicode 文字です。UTF-8 エンコーディングでは、名前の各文字につき 1~4 バイトのストレージがバケットに追加されます。

有効なキー名の詳細については、「オブジェクトキー名の作成」を参照してください。削除マーカーの削除の詳細については、「削除マーカーの管理」を参照してください。

Amazon S3 のみが削除マーカーを作成することができ、バージョニングが有効なバケットまたは停止されたバケット内のオブジェクトに対して DELETE Object リクエストが送信されるたびにこの作成を行います。DELETE リクエストで指定されたオブジェクトは実際には削除されず、代わりに削除マーカーがオブジェクトの最新バージョンになります。オブジェクトのキー名 (またはキー) が削除マーカーのキーになります。オブジェクトを取得しようとしたときに、その最新バージョンが削除マーカーである場合、Amazon S3 は次のように応答します。

  • エラー 404 (オブジェクトが見つからない)

  • レスポンスヘッダー、x-amz-delete-marker: true

レスポンスヘッダーから、アクセスされたオブジェクトが削除マーカーであったことがわかります。このレスポンスヘッダーは false を返すことはありません。値が false の場合、Amazon S3 はレスポンスにこのレスポンスヘッダーを含めません。

次の図は、最新バージョンが削除マーカーであるオブジェクトに対するシンプルな GET が、エラー 404「No Object Found」を返す方法を示しています。

削除マーカー (およびオブジェクトのその他のバージョン) をリストするには、versions リクエストで GET Bucket versions サブリソースを使用するしかありません。シンプルな GET は、削除マーカーオブジェクトを取得しません。次の図は、GET Bucket リクエストが、最新バージョンが削除マーカーであるオブジェクトを返さないことを示しています。