我想提高我的网站加载速度,所以我使用http://gtmetrix.com/来检查我可以改进的地方。我获得的“利用浏览器缓存”评分最低之一。我发现,我的文件(主要是图像)存在“未指定过期”的问题。
好的,问题很清楚,我想。我开始搜索,发现亚马逊 S3 更喜欢 Cache-Control 元数据而不是到期日期(我丢失了这个链接,现在我想也许我误解了一些东西)。无论如何,我开始寻找如何将缓存控制元添加到 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)“将 Expires 设置为至少一个月,最好在未来一年。”
2) “我们更喜欢 Expires 而不是 Cache-Control: max-age,因为它得到了更广泛的支持。”(在建议主题中)。
因此,我开始寻找将到期日期设置为 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 中删除我的文件。我只想添加缓存元以获得最大缓存时间或/和文件到期时间。
我完全对此感到困惑。有人可以解释我必须使用什么:对象过期或缓存控制吗?