当来源为 s3 时如何从 aws cloudfront 转发 headers
How to forward headers from aws cloudfront when origin is s3
我正在尝试利用我网站的浏览器缓存来取悦 "google page speed check"。
google 抱怨我的图像中没有定义过期日期,所以我试图在我的图像中添加 "cache-control" header
。我通过 Amazon cloudfront
提供图像,来源是 S3
。我阅读了几篇文章,我遵循的步骤是:
- 我转到我的
s3
存储桶并手动设置一个 "cache-control" header
对于我的测试 object(图片)。我工作了,我可以在我的浏览器中看到 header。
我转到我的 CloudFront 分配,"behaviour" -> "edit"
和
从那里我尝试了以下事情:
a) 设置 "Forward Headers" to "all"
。亚马逊抱怨 "all"
值
当原点为 s3
.
时无法设置
b) 设置 "Forward Headers" to "Whitelist"
-> 添加 "Origin"
作为
列入白名单 header。它不起作用。当我检查我的浏览器时,我不
查看 "cache-control" header
c) 将 "Forward Headers" to "None"
-> 和 "Object Caching"
设置为“使用
原始缓存 Headers”。它不起作用。
d) 将 "Forward Headers"
设置为 "None"
-> 并将 "Object Caching
" 设置为
"Cusomize"
-> 为 min/max/default TTL 指定一个值。它没有
工作。
所以我 运行 没有选择和希望。有什么想法可以让 CloudFront
将 header 转发给浏览器吗?
问题是您没有等待更改传播。我一直在成功使用以下配置。
Post 这个,就等变化传播了。 (如果你很不耐烦,那就创建一个*
失效)
要上传资产,您可以使用以下命令[假设您已经下载了aws cli]。
aws s3 sync local_dir s3://bucket --cache-control max-age=604800
我正在尝试利用我网站的浏览器缓存来取悦 "google page speed check"。
google 抱怨我的图像中没有定义过期日期,所以我试图在我的图像中添加 "cache-control" header
。我通过 Amazon cloudfront
提供图像,来源是 S3
。我阅读了几篇文章,我遵循的步骤是:
- 我转到我的
s3
存储桶并手动设置一个"cache-control" header
对于我的测试 object(图片)。我工作了,我可以在我的浏览器中看到 header。 我转到我的 CloudFront 分配,
"behaviour" -> "edit"
和 从那里我尝试了以下事情:a) 设置
时无法设置"Forward Headers" to "all"
。亚马逊抱怨"all"
值 当原点为s3
.b) 设置
"Forward Headers" to "Whitelist"
-> 添加"Origin"
作为 列入白名单 header。它不起作用。当我检查我的浏览器时,我不 查看"cache-control" header
c) 将
"Forward Headers" to "None"
-> 和"Object Caching"
设置为“使用 原始缓存 Headers”。它不起作用。d) 将
"Forward Headers"
设置为"None"
-> 并将"Object Caching
" 设置为"Cusomize"
-> 为 min/max/default TTL 指定一个值。它没有 工作。
所以我 运行 没有选择和希望。有什么想法可以让 CloudFront
将 header 转发给浏览器吗?
问题是您没有等待更改传播。我一直在成功使用以下配置。
Post 这个,就等变化传播了。 (如果你很不耐烦,那就创建一个*
失效)
要上传资产,您可以使用以下命令[假设您已经下载了aws cli]。
aws s3 sync local_dir s3://bucket --cache-control max-age=604800