オブジェクトバージョンの削除
オブジェクトのバージョンはいつでも削除できます。さらに、明確なライフサイクルが定義されているオブジェクトのライフサイクル設定ルールを定義することにより、最新のオブジェクトバージョンを有効期限切れにしたり、以前のオブジェクトバージョンを完全に削除したりすることを Amazon S3 にリクエストできます。バケットでバージョニングが有効であるか、バージョニングが停止されている場合、ライフサイクル設定アクションは次のように動作します。
-
Expiration
アクションは最新のオブジェクトバージョンに適用されます。Amazon S3 は、最新のオブジェクトバージョンを削除するのではなく、削除マーカーを追加してそれを最新バージョンとします。これにより、最新バージョンは以前のバージョンとして保持されます。 -
NoncurrentVersionExpiration
アクションは、以前のオブジェクトバージョンに適用されます。Amazon S3 はこれらのオブジェクトバージョンを完全に削除します。完全に削除したオブジェクトは復元できません。
詳細については、「オブジェクトのライフサイクル管理」を参照してください。
DELETE
リクエストには次のユースケースがあります。
-
バージョニングが有効になっている場合、単純な
DELETE
はオブジェクトを完全に削除することはできません。代わりに、Amazon S3 はバケットに削除マーカーを挿入します。このマーカーが新しい ID を持つオブジェクトの最新バージョンになります。最新バージョンが削除マーカーであるオブジェクトを
GET
しようとすると、Amazon S3 は、オブジェクトが (消去されていなくても) 削除されたものとして動作し、エラー 404 を返します。次の図は、シンプルな
DELETE
が、指定したオブジェクトを実際には削除しないことを示しています。代わりに、Amazon S3 は削除マーカーを挿入します。 -
バージョニングされたオブジェクトを完全に削除するには、
DELETE Object versionId
を使用する必要があります。次の図は、指定したオブジェクトバージョンを削除することによって、そのオブジェクトを完全に削除する方法を示しています。
コンソールを使用する
手順については、Amazon Simple Storage Service コンソールユーザーガイドの「S3 オブジェクトのバージョンを表示するには」を参照してください。
AWS SDK の使用
AWS SDK for Java、.NET、PHP を使用してオブジェクトを削除する例については、「オブジェクトの削除」を参照してください。バージョニングが設定されていないバケットでも、バージョニングが有効なバケットでも、オブジェクトを削除する例は同じです。ただし、バージョニングが有効なバケットでは、Amazon S3 によってバージョン番号が割り当てられます。それ以外の場合、バージョン番号は null になります。
他の AWS SDK の使用については、「サンプルコードとライブラリ」のページを参照してください。
REST の使用
オブジェクトの特定のバージョンを削除するには
-
DELETE
でバージョン ID を指定します。
例 特定のバージョンの削除
次の例は、photo.gif
のバージョン UIORUnfnd89493jJFJ を削除する方法を示しています。
DELETE /photo.gif?versionId=UIORUnfnd89493jJFJ HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 0