Dim*_*lov 7 rest caching metadata cache-control amazon-s3
我想提高我的网站加载速度,所以我使用http://gtmetrix.com/来检查我可以改进的地方.我获得的"利用浏览器缓存"的最低评级之一.我发现,我的文件(主要是图像)有问题"未指定过期".
好吧,问题很明显,我想.我开始谷歌搜索,我发现亚马逊S3更喜欢缓存控制元数据超过有效期(我失去了这个链接,现在我想也许我误解了一些东西).无论如何,我开始寻找如何将缓存控制元添加到S3对象.我找到了这个页面:http://www.bucketexplorer.com/documentation/amazon-s3--how-to-set-cache-control-header-for-s3-object.html
我了解到,我必须在我的PUT查询中添加字符串.
x-amz-meta-Cache-Control : max-age= <value in seconds> //(等号和数字之间不需要空格(我在这里犯了错误)).
我使用构造:Cache-control:max-age=1296000它工作正常.
之后我阅读了 https://developers.google.com/speed/docs/best-practices/caching 这篇文章告诉我:1)"将过期设置为至少一个月,最好是一年,以后".
2)"我们更喜欢Expires over Cache-Control:max-age,因为它受到更广泛的支持."(在Recommendations主题中).
所以,我开始寻找将过期日期设置为S3对象的方法.我发现了这个:http: //www.bucketexplorer.com/documentation/amazon-s3--set-object-expiration-on-amazon-s3-objects-put-get-delete-bucket-lifecycle.html
我发现:"使用Amazon S3对象生命周期管理,您可以在Amazon S3对象上定义对象到期.一旦为S3对象定义的生命周期到期,Amazon S3将删除此类对象.因此,当您想要保留数据时在S3上仅限时间,并且您希望它由Amazon S3自动删除,您可以设置对象到期."
我不想从S3删除我的文件.我只想添加缓存元数据以获得最长缓存时间或/和文件到期时间.
我完全和这个混淆了.有人可以解释一下我必须使用的东西:对象到期还是缓存控制?
S3允许您指定缓存控制的max-age和Expires标头,CloudFront允许您为缓存行为指定Minimum TTL,Maximum TTL和Default TTL.并且这些标题只告诉对象的有效期何时在缓存(云端或浏览器缓存)中过期以读取它们的相关性,请阅读以下链接 http://docs.aws.amazon.com/AmazonCloudFront/latest/ DeveloperGuide/Expiration.html#ExpirationDownloadDist
为了让你利用浏览器缓存,只需为s3上的所有对象指定缓存控制头.执行 为存储桶中的现有对象添加缓存控制的步骤
“Amazon S3 对象生命周期管理”根据您可以定义的规则从您的存储桶中刷新一些对象。这仅与存储有关。
您要做的就是在设置 Cache-Control 标头时设置 HTTP 请求的 Expires 标头。它的工作原理是相同的:您只需将此标头添加到您的 PUT 查询中即可。Expires 不起作用,因为 Cache-Control:Expires 给出一个日期。例如:2013 年 1 月 31 日星期六 23:59:59 GMT
| 归档时间: |
|
| 查看次数: |
21204 次 |
| 最近记录: |