0

S3 をソースとするステージング CloudFront サイトがあります

私がやりたいのは、これを設定して、Cloudfront が 1 分間だけキャッシュし、その後のすべてのリクエストが S3 に戻って新しいデータを取得するようにすることです。可能であれば、キャッシュを完全にオフにする方法も知りたいです。

私はこれを試しました:

Write-S3Object -BucketName "xx-staging" 
               -Key "index.html" 
               -Metadata @{"Cache-Control" = "60000"}
               -File "index.html" 

結果は次のとおりです。

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 24686
Connection: keep-alive
Date: Mon, 18 May 2015 14:14:21 GMT
x-amz-meta-cache-control: 60000
Last-Modified: Mon, 18 May 2015 13:45:46 GMT
ETag: "b2d38663e20237e056f8e507a2caa77a"
Accept-Ranges: bytes
Server: AmazonS3
Age: 1648
X-Cache: Hit from cloudfront
Via: 1.1 6d4df30b39d1e7ecggb0ecd7b8940b88.cloudfront.net (CloudFront)
X-Amz-Cf-Id: oNHGs5CK8hed2OJ_BPaeaf1zFzQE4w7tmnkOym5_1QAMvU6YjNwcfw==

5分後に別のリクエストを試すと、同様の応答が返されます

X-Cache: Hit from cloudfront

誰でも私が間違っていることを指摘できますか。

Write-S3Object を使用する回答を探していることに注意してください。

ポータルに追加しようとしたことに注意してください。

CacheControl の最大有効期間: 60000

これにより、「クラウドフロントからのヒット」と表示される次のメッセージが表示されました

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 24686
Connection: keep-alive
Date: Mon, 18 May 2015 15:34:11 GMT
x-amz-meta-cache-control: 60000
Cache-Control: 60000
Last-Modified: Mon, 18 May 2015 15:26:29 GMT
ETag: "b2d38663e20237e056f8e507a2caa77a"
Accept-Ranges: bytes
Server: AmazonS3
Age: 82
X-Cache: Hit from cloudfront
Via: 1.1 cf25d52fc78aeceb914fb4445fd00a15.cloudfront.net (CloudFront)
X-Amz-Cf-Id: JHXjHLaUUzN4L0M7rqkrr97c2glFlNT_avHASTxDuQw6ePeK4mQppg==
4

1 に答える 1

2

これは Cache-Control ヘッダーの優れた入門書です。ヘッダーは次のようにする必要があります*:

Cache-Control: public,max-age=60

cache-control ヘッダーは、ミリ秒ではなく秒を使用します。「パブリック」とは、基本的に「これを CDN に保存しても問題ない」という意味です。これは、最初の Powershell コマンドで機能すると思います。

 -HeaderCollection @{"Cache-Control" = "public,max-age=60"}

キャッシュを完全に無効にしたい場合は、次のように設定します*:

Cache-Control: no-cache

またはこれ:

Cache-Control: max-age=60,must-revalidate

curl -D - http://s3-website-urlを使用して、それが正しいことをテストすることをお勧めします。そうすれば、ヘッダーを検証するために Cloudfront を忘れることができます。

*バリエーションが豊富です。これは非常に一般的な方法であり、機能します。

于 2015-05-18T15:57:21.990 に答える