S3
awscli

aws cli で s3のContentTypeとACLを変更

何も考えずに boto3 で s3 に 大量のpdfファイルを上げたら、全部 Content-Typebinary/octet-stream になってしまったので、まとめて application/pdf に直したかった話。
ついでに public-read で外部から読めるようにしたかったので、

まとめてこう。

BUCKET="your-bucket"
KEY="path/to/your.pdf"

aws s3api copy-object --bucket "$BUCKET" --copy-source "$BUCKET/$KEY" --key "$KEY" --content-type "application/pdf" --metadata-directive REPLACE
aws s3api put-object-acl --acl public-read --bucket "$BUCKET" --key "$KEY"

確認。

aws s3api head-object --bucket "$BUCKET" --key "$KEY"
aws s3api get-object-acl --bucket "$BUCKET" --key "$KEY"