S3バージョン管理オブジェクトの削除方法

S3バケットでバージョン管理が有効になっている場合、StorageGRIDは削除要求に応答する際に、要求がS3クライアント、S3バケット ライフサイクルの終了、ILMポリシーの要件のいずれによるものであれ、Amazon S3の動作に従います。

オブジェクトがバージョン管理されている場合、オブジェクトの削除要求は最新バージョンのオブジェクトを除せず、スペースも解放しません。代わりに最新バージョンのオブジェクトとして削除マーカーを作成し、その結果、以前のバージョンのオブジェクトは「noncurrent」になります。

オブジェクトは削除されていませんが、StorageGRIDは最新バージョンのオブジェクトがもうないかのように動作します。そのオブジェクトに対する要求は404 NotFoundを返します。しかし、最新でないオブジェクト データは削除されていないため、最新でないバージョンのオブジェクトを指定する要求は成功します。

バージョン管理オブジェクトを削除するときにスペースを解放するには、次のいずれかを実行する必要があります。
  • S3クライアント要求:S3 DELETE Object要求にオブジェクトのバージョン番号を指定します(DELETE /object?versionId=ID)。この要求は、指定したバージョンのオブジェクト コピーだけを削除します(他のバージョンは引き続きスペースを消費します)。
  • バケット ライフサイクル:バケット ライフサイクル設定でNoncurrentVersionExpirationアクションを使用します。NoncurrentDaysで指定した日数に達すると、StorageGRIDは最新でないオブジェクト バージョンのコピーをすべて完全に削除します。削除されたオブジェクト バージョンはリカバリできません。
  • ILM:ILMポリシーに2つのILMルールを追加します。最初のルールの[Reference Time]に[Noncurrent Time]を指定し、最新でないバージョンのオブジェクトに一致させます。2つ目のルールでは[Ingest Time]を使用し、最新バージョンに一致させます。[Noncurrent Time]を指定したルールを[Ingest Time]を指定したルールよりもポリシーの上位に配置する必要があります。