08 Mar 2015

S3 のオブジェクトごとに Cache-Control を設定する

S3 上のオブジェクトはオブジェクトごとに Cache-Control ヘッダの設定ができる。

やり方は簡単で、S3 の Web UI から対象のオブジェクトを選び、PropertiesMetadata から Cache-Control のキーを追加すれば良い。

キャッシュさせたくない場合は no-cache, no-store、させたい場合は max-age=86400 などと指定すれば良い。

もちろん API や aws-cli からも設定できる。こちら ではバケットのすべてのオブジェクトの Cache-Control を設定するワンライナーが紹介されていて便利だ。

その他には、[Bucket Explorer]() というサードパーティの S3 クライアントは バケットごとの Metadata のデフォルト値が設定できるよう で、こちらも便利そうだ。

travis-ci の deploy 経由で S3 に上げる場合は、.travis.ymldeploy ディレクティブに cache_control というキーを指定すれば設定できる。

deploy:
  provider: s3
  ..
  cache_control: "max-age=31536000"

Travis CI: S3 Deployment

関連