S3でオブジェクトのライフサイクルが設定できるようになりました。
これにより、特定のルールで自動削除が可能となります。

左ペインのバケット一覧にあるバケット名を右クリックし、「Properties」を選択し、
下ペインにバケットの設定を表示します。

今回は例として、expire-testというバケットに下のようなファイル群があるとします。

下部ペインのバケット設定の一番右に「Lifecycle」というタブがあるので、クリックします。
ここで、オブジェクトの自動削除の設定を追加できます。
設定項目は以下になります。

  • Enabled  :有効フラグ、この設定を有効にするか無効にするかのチェックです。
  • Name   :設定名、設定が複数あるときに判別しやすくする為です。
  • Prefix   :削除対象のオブジェクトのキー(パス名)に対するプリフィックス。空白の場合はすべてのオブジェクトが対象になります。
  • Expiration :有効期限、オブジェクトが作成された日からの日数です。

ここでは、下記のように設定しました。

設定1:

  • Name   :Expiration1
  • Prefix   :*.jpg
  • Expiration :1

設定2:

  • Name   :Expiration1
  • Prefix   :Blog
  • Expiration :1

設定3:

  • Name   :Expiration1
  • Prefix   :capture
  • Expiration :1

1日待ってから確認してみると、以下のようになりました。

設定1で「*.jpg」というパターン表記をしましたが、kabegami_336.jpgが削除されていません。
このPrefixはあくまでプリフィクスで、ワイルドカードやオブジェクトキーの正規表現は、
使用できないということになります。
設定2で指定した「Blog」に前方一致したBlogs-1.png,Blogs-2.png,Blogs-3.pngが正常に削除されました。
設定3で指定した「capture」に前方一致したcaptureフォルダとその中身が正常に削除されました。

細かいコントロールが必要となる場合であれば、オブジェクトキーの正規表現が可能であると嬉しいですが、
これだけでも十分便利になります。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら