awscliで s3のファイルをまとめて削除

s3のファイルがたくさんあって消したくなることあるじゃないですか。

UNIXと同じように rm /var/log/httpd/201608* とかまとめて消したいんです。
ファイルをlsして1つ1つ確認して消したくない。

aws s3 rm s3://fuga/hoge/201608*

こんな気持ち。
で上記コマンドを実行すると

$ aws s3 rm s3://fuga/hoge/201608*
zsh: no matches found: s3://fuga/hoge/201608*

やっぱりエラーでますよねー。ということで調べてみた。
awscli s3 rmでワイルドカードを使うなんてビンゴなページを発見。
早速テストをしてみる。

$ aws s3 rm s3://fuga/hoge –exclude ‘*’ –include ‘201608*’ –recursive –dryrun

*が使えてよかったーーー
–dryrunをつけていないと本当に消されるので確認時には–dryrunをつけるの忘れたらやばいね。

ということでメモ書き。
Logって溜めるときにはtd-agentでS3にどかんと置けばOKだから楽なんだけど
消すときのことを考えていなかった・・・