Amazon Cloudfront 上的版本控制如何运作?

jrc*_*ins 4 amazon-s3 amazon-cloudfront

我刚刚在 Amazon S3 上设置了一个静态网站。我也在使用 Cloudfront CDN 服务。

根据亚马逊的说法,有两种方法可用于清除 Cloudfront 缓存:失效和版本控制。我的问题是关于后者。

考虑以下示例:

我从我的文件链接到图像文件 ( image.jpg) index.html。然后我决定更换图像。我上传第二张图像,文件名为:image_2.jpg并更改文件中的链接index.html

更改会自动生效还是需要采取进一步措施?

如果编辑的和新上传的文件位于存储桶而不是缓存中,什么会触发必要的更改?

lvt*_*llo 6

CloudFront 中的版本控制只不过是在对象名称或存储对象的“文件夹”名称中添加(或添加前缀)版本。

  • 文件夹中的所有对象v1并使用类似的 URL https://xxx.cloudfront.net/v1/image.png
  • 所有对象的名称中都包含一个版本(例如 image_v1.png)并使用类似的 URLhttps://xxx.cloudfront.net/image_v1.png

第二种选择通常需要更多工作,但您不需要上传不需要更新的新文件(=在存储方面更便宜)。第一个解决方案通常更清晰并且需要更少的工作。

使用 CloudFront 版本控制需要更多的 S3 存储,但通常比创建许多失效更便宜。

使缓存失效的另一种方法是创建失效(可能会很昂贵)。如果您并不真正需要失效,而只是需要更快速的缓存刷新(默认 24 小时),那么您可以更新原始 TTL 设置(原始级别)或为单个对象设置缓存持续时间(对象级别)。