S3バケットに含まれる全オブジェクトのCache-Controlを書き換えるワンライナー

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

S3バケットに含まれる全オブジェクトのCache-Controlを書き換える、一撃で!では、AWS SDK for Rubyを使ったスクリプトで実行しました。

じゃあ今度はAWSコマンドラインインターフェースを使って、ワンライナー一撃で書き換えたいと思います。

やってみる

YOUR_BUCKET_NAMEの部分を、書き換えたいS3バケット名に直して、以下ワンライナーを実行します。

$ BUCKET="YOUR_BUCKET_NAME"; aws s3 ls s3://$BUCKET --recursive | awk -v BUCKET="${BUCKET}" '{system("aws s3api copy-object --bucket " BUCKET " --copy-source " BUCKET "/" $4 " --key " $4 " --metadata-directive REPLACE --cache-control \"no-cache, no-store\"")}'

すると指定したS3バケットに含まれる全てのオブジェクトのMetaDataにCache-Controlが設定されます!

S3_Management_Console

はい一撃!

まとめ

以上、コネタでした。いやーワンライナー考えるの楽しいですね!