【问题标题】:How does versioning work on Amazon Cloudfront?版本控制如何在 Amazon Cloudfront 上工作?
【发布时间】:2019-08-25 03:38:54
【问题描述】:

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

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

考虑以下示例:

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

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

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

【问题讨论】:

    标签: amazon-s3 amazon-cloudfront


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      您的云端配置有一个缓存 TTL,它会告诉您文件何时更新,无论源何时更改。

      如果您需要立即更新,请使用 index.html 文件中的失效功能

      【讨论】:

      • 好的,但我认为版本控制是失效的替代方法,否则无论您使用版本控制还是仅上传文件名中没有任何版本引用的新文件都没有区别。
      • 版本控制或文件夹在您从其他地方引用您的云端资源时有意义,您可以在其中指定版本。
      【解决方案3】:

      我会插话的,以防其他人来这里寻找我的所作所为。如果您知道需要哪个版本,则可以设置启用 S3 版本控制的 Cloudfront 并参考特定的 S3 版本。我把它放在一个预先签名的 Cloudfront URL 后面,最后在 Java SDK 中得到了这个:

          S3Properties s3Properties... // Custom properties pulled from a config file
          String cloudfrontUrl = "https://" + s3Properties.getCloudfrontDomain() + "/" + 
                  documentS3Key + "?versionId=" + documentS3VersionId;
      
          URL cloudfrontSignedUrl = new URL(CloudFrontUrlSigner.getSignedURLWithCannedPolicy(
                  cloudfrontUrl,
                  s3Properties.getCloudfrontKeypairId(),
                  SignerUtils.loadPrivateKey(s3Properties.getCloudfrontKeyfilePath()),
                  getPresignedUrlExpiration()));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-10
        • 2016-12-13
        • 2011-11-17
        • 2017-06-22
        • 1970-01-01
        • 2022-09-24
        • 2012-09-16
        • 2013-02-06
        相关资源
        最近更新 更多