2012-01-18 32 views
13

Amazon S3にカスタムヘッダーを任意の名前で付けることは可能ですか?Amazon S3のカスタムヘッダー

たとえば、Amazon S3を指すCDNを起点サーバーとして使用しています.CDNの高度な機能を有効にするために、カスタムヘッダー「x-something-something」を使用する必要があります。

"x-amz-meta-(something)"でこれを行うことは可能ですが、amzを使わないで "x-(something) - (something)"のようなより一般的なものはどうですか?

Amazon S3 custom headers

+0

このようにプレフィックスされたヘッダーを使用して達成できないことはありますか? – Kekoa

答えて

11

私はそれが彼らのcurrent APIでは可能ではないと思います。それらは、キャッシングとブラウザの相互運用性のために必要となる主要なヘッダーをカバーします。

x-amz-meta-のプレフィックス付きのカスタムヘッダーを許可するだけで安全だと思っています。今後、ユーザーの選択したヘッダーとの衝突を避けることができます。

オブジェクトにカスタム属性が必要な場合は、クライアントアプリケーションのx-amz-meta-を解析するのは簡単です。

+5

あなたがクライアントアプリケーションを制御している場合は "トリビアル"ですが、サードパーティであれば、それほど簡単ではありません! – Jeff

+1

@ジェフあなたがAWSに直接アクセスしないと、あなたが使っているものの限界に気づいていると思います。 – Kekoa

+0

私は自分のカスタムヘッダーを設定できなかったのはなぜですか? 'x-amz-meta-'プレフィックスは実際にそれを行いました(アマゾンによってよく書かれていない事実)。 – Frederic

5

この美しい記事ではそれをすべて https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2

tldr説明:あなたは、S3でのみcan't-行う

を。 CloudfrontとlambdaをLambda @ Edgeで利用する必要があります。これはLambdaとCloudFrontの統合です。これにより、CloudFront内でLambdasを実行できます。これにより、他のものとの間でヘッダーを変更することができます。あなたがCloudFront経由であなたのs3にアクセスしても大丈夫なら、これは実行可能なオプションかもしれません。

0

s3cmd toolを使用してこれを達成できました。 appropriatedirectory

CD/

#:私は、AWSのクライアントツールで--cache-controlパラメータを使用して、私の静的なサイトを同期して、それを手動でリセットし、いくつかの特定のファイルのカップル他のヘッダを追加する同期スクリプトを書きました現在のサイトを削除
AWS S3 RM S3:// yourbucket --recursive全てのファイルのために1ヶ月に
AWS S3の同期をキャッシュヘッダーを設定--exclude 'ログ/ *'

#アップロード新しいサイト、。 s3:// yourbucket --exclude '.idea/*' --exclude '.git/*' --exclude '.gitignore' --cache-control max-age = 2592000

#次のキャッシュヘッダーをオーバーライドします。いくつかのファイル
python/pathToS3cmd/s3cmd変更--add-header = "キャッシュコントロール:no-cache、no-store、re-revalidate" s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/--add-header = "プラグマ:no-cache" s3:// yourbucket(s3cmd)--add-header = "Expires:0" s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/s3cmd /somefile.html

+0

これは、ログ、IntelliJ、およびGitファイルを無視するためのいくつかの欠点があります。私は実用的な同期スクリプトのうまく役立つ例としてそれを残しました。 –