S3 で特定のプリフィックス以下のオブジェクトの過去バージョンを削除する。以下はバケット test-bucket の test/ 以下のオブジェクトの過去バージョンを削除するケース。UTC 0:00 になると削除される。
- lifecycle.json を作成する
{ "Rules": [ { "Status": "Enabled", "Prefix": "test/", // 対象のプリフィックスを指定する "NoncurrentVersionExpiration": { "NoncurrentDays": 1 // 1日以上経過した過去バージョンを削除する }, "ID": "Delete all" } ] }
- ライフサイクルポリシーを適用する。
$ aws s3api put-bucket-lifecycle --bucket test-bucket --lifecycle-configuration file://lifecycle.json
- ライフサイクルポリシーを確認する。
$ aws s3api get-bucket-lifecycle --bucket test-bucket { "Rules": [ { "Status": "Enabled", "Prefix": "test/", "NoncurrentVersionExpiration": { "NoncurrentDays": 1 }, "ID": "Delete all" } ] }
- ライフサイクルポリシーを削除したい場合は、delete-bucket-lifecycle で削除する。
$ aws s3api delete-bucket-lifecycle --bucket test-bucket
参考
Amazon S3 は、ルールに指定された日数をオブジェクトの次の新しいバージョンが作成された時間に加算し、得られた日時を翌日の午前 00:00 (UTC) に丸めることで、時間を算出します。たとえば、バケット内に 2014 年 1 月 1 日の午前 10 時半 (UTC) に作成されたオブジェクトの現行バージョンがあるとします。現行バージョンを置き換えるオブジェクトの新しいバージョンが 2014 年 1 月 15 日の午前 10 時半 (UTC) に作成され、3 日間の移行ルールを指定すると、オブジェクトの移行日は 2014 年 1 月 19 日の午前 0 時 (UTC) となります。
ライフサイクル設定の要素 - Amazon Simple Storage Service