特定prefix配下のオブジェクトを全て削除

AWS S3において表題の件を`aws`コマンドで行いたい。

■ 環境

  • awscli 1.14.50
  • Mac OSX El Capitan

■ aws s3 rm

不要なオブジェクトが大量にある。件数を出してみると50万個…。どれもS3のライフサイクルを設定される前に作成されたもので既に不要になったものの残ってしまっていたオブジェクトである。さすがに50万個もあるので1個ずつ消していくとかなりの時間がかかってしまう。というわけである程度prefixで対象をまとめることができそうだったので、特定のprefix配下にあるオブジェクト全てを削除したい。

$ aws s3 rm s3://..../path/to/ --recursive

–recursive“を付けることで、指定したprefix配下全てを削除してくれる。

prefixを絞ってみたところ、対象が50万個であったオブジェクトが1万5千prefix程度になった。これでも十分多いのであるがさすがに50万個に比べれば我慢できる範囲である。後は1行スクリプトでどんどん消していくだけである。

以上。