

# 削除マーカーの使用
<a name="DeleteMarker"></a>

Amazon S3 の*削除マーカー*は、単純な `DELETE` リクエストで指定された、バージョニングされたオブジェクトのプレースホルダー (またはマーカー) です。単純な `DELETE` リクエストとは、バージョン ID を指定しないリクエストです。オブジェクトがバージョニングが有効なバケット内にあるため、そのオブジェクトは削除されません。ただし、削除マーカーにより、Amazon S3 はオブジェクトが削除されたかのように動作します。削除マーカーに対しては、Amazon S3 API `DELETE` コールを使用できます。これを行うには、適切なアクセス許可を持つ AWS Identity and Access Management (IAM) ユーザーまたはロールを使用して `DELETE` リクエストを行う必要があります。

削除マーカーには、他のすべてのオブジェクトと同様に、*キー名* (またはキー)** とバージョン ID があります。ただし、削除マーカーは次のような点で他のオブジェクトとは異なります。
+ 削除マーカーには、データが関連付けられていません。
+ 削除マーカーには、アクセスコントロールリスト (ACL) の値が関連付けられていません。
+ 削除マーカーに対する `GET` リクエストを発行しても、削除マーカーにはデータがないため、`GET` リクエストでは何も取得されません。具体的には、`GET` リクエストで `versionId` を指定しない場合、404 (Not Found) エラーが表示されます。

削除マーカーにより、Amazon S3 内のストレージに対して最低料金が発生します。削除マーカーのストレージサイズは、その削除マーカーのキー名のサイズと同じです。キー名は一連の Unicode 文字です。キー名の UTF-8 エンコーディングでは、名前の文字ごとに 1～4 バイトのストレージがバケットに追加されます。削除マーカーは S3 Standard ストレージクラスに保存されます。

削除マーカーの保有数と、保存先のストレージクラスを確認する場合は、Amazon S3 ストレージレンズを使用できます。詳細については、「[Amazon S3 ストレージレンズを使用してストレージのアクティビティと使用状況をモニタリングする](storage_lens.md)」および「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

有効なキー名の詳細については、「[Amazon S3 オブジェクトに命名する](object-keys.md)」を参照してください。削除マーカーの削除の詳細については、「[削除マーカーの管理](ManagingDelMarkers.md)」を参照してください。

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

リクエストで `versionId` を指定せずにオブジェクトを取得するときに、現在のバージョンが削除マーカーである場合、Amazon S3 は次のように応答します。
+ 404 (Not Found) エラー
+ レスポンスヘッダー、`x-amz-delete-marker: true`

リクエストで `versionId` を指定してオブジェクトを取得するときに、指定したバージョンが削除マーカーである場合、Amazon S3 は次のように応答します。
+ 405 (Method Not Allowed) エラー
+ レスポンスヘッダー、`x-amz-delete-marker: true`
+ レスポンスヘッダー、`Last-Modified: timestamp` ([HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) または [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) API オペレーションを使用する場合のみ)

`x-amz-delete-marker: true` レスポンスヘッダーから、アクセスしたオブジェクトが削除マーカーであったことがわかります。値が `false` である場合、オブジェクトの現在のバージョンまたは指定したバージョンは削除マーカーではないため、このレスポンスヘッダーは `false` を返しません。

`Last-Modified` レスポンスヘッダーには削除マーカーの作成時間が表示されます。

次の図は、現在のバージョンが削除マーカーであるオブジェクトに対する `GetObject` API コールから返される 404 (No Found) エラーと、レスポンスヘッダーに含まれる `x-amz-delete-marker: true` を示しています。

![\[削除マーカーに対する GetObject コールが 404 (No Found) エラーを返すことを示す図。\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound.png)


リクエストで `versionId` を指定してオブジェクトに対して `GetObject` コールを行った場合、指定したバージョンが削除マーカーであると、Amazon S3 は 405 (Method Not Allowed) エラーで応答し、レスポンスヘッダーには `x-amz-delete-marker: true` と `Last-Modified: timestamp` が含まれます。

![\[削除マーカーの GetObject コールが 405 (メソッドが許可されていません) エラーを返すことを説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound_405.png)


上書きされても、削除マーカーはオブジェクトバージョンに残ります。削除マーカー (およびオブジェクトのその他のバージョン) をリストするには、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) リクエストを使用するしかありません。AWS マネジメントコンソールで汎用バケットにオブジェクトを一覧表示し、**[バージョンの表示]** を選択することで、このリクエストを行うことができます。詳細については、「[バージョニングが有効なバケットでのオブジェクトのリスト取得](list-obj-version-enabled-bucket.md)」を参照してください。

次の図で、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) リクエストや [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) リクエストは、現在のバージョンが削除マーカーであるオブジェクトを返さないことを示しています。

![\[ListObjectsV2 コールまたは ListObjects コールが削除マーカーを返さないことを説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_GETBucketwithDeleteMarkers.png)
