aws s3のファイル大量削除は、ライフサイクルルールでやりましょう!
awsのバケットの削除、もしくは、フォルダの中身の削除、s3のコンソールからでも行えるのですが、この中身が大量にあると一苦労。あっさり消えてくれません。もしくは、webのセッションがタイムアウトしてしまって、作業時間の無駄になってしまいますw
ここは、もっと効率よく、ライフサイクルルールで大量削除を実施しましょう!ただし、取り扱い注意!!
ライフサイクルルールとは
単純にいうと、s3内のファイルライフサイクル管理ですかね。(そのまま
ライフサイクルルールには、2種類ありまして。。。
1.移行アクション – 別のストレージクラスにオブジェクトを移行するタイミングを定義します。たとえば、作成後 30 日目に STANDARD_IA (IA、少頻度アクセス) ストレージクラスにオブジェクトを移行し、作成後 1 年目に GLACIER ストレージクラスにオブジェクトをアーカイブするよう選択することができます。
2.失効アクション – オブジェクトの有効期限日を指定します。これにより、Amazon S3 はユーザーに代わって有効期限切れのオブジェクトを削除します
今回の主題で、2.失効アクションをライフサイクルルールでやれば、1日あと、きれーいに削除できるのではないかと考え、それを設定してみました。
設定手順
対象のバケットを選択
ここでは、とある、バケットのvideosというフォルダを選択しています。ここから管理というタブをクリックします
ライフサイクルルール作成
ライフサイクルルールの追加をクリックします
対象のオブジェクト(フォルダ)を入力
今回は、バケット全体を削除するわけではなく、とあるバケットのvideosの中を削除したいので、プレフィックスを設定します。ここ、すごく危険なので、設定が間違っていないか何回も確認してください。間違っていたら大事故になるかもしれません。
移行の設定
今回、移行ではなく削除なので、チェックを入れないで次に進みます
失効の設定
ここが今回のメインになります。以下のように設定しました。全て消し去って、使われていない、オブジェクトの削除を実施したかったので、赤枠のほとんどにチェックを入れました、そして、大事なのは、この日数の部分ですね。1日に設定しました。 つまり、1日経過したあと、ルールが適用されるとかそんなイメージです
確認画面
自身が設定したものが間違いないか、何回もチェック!!!
ルール反映
ルールが反映され、一覧に表示されているかと思います。
以上、こんな感じで、翌日、中のファイル(オブジェクト)がきれいさっぱり削除されているか、確認したいと思います。
いかがでしょうか?設定は簡単なんだけど、やるのは、すごーく怖い設定の話でしたw