【问题标题】:Amazon Cloudfront cache issueAmazon Cloudfront 缓存问题
【发布时间】:2016-05-06 07:30:32
【问题描述】:

嘿,我已经开始使用 Cloudfront。在我的应用程序中,我在 s3 存储桶中有图像。 用户可以更新这些图像。当用户更新图像时,图像会在 s3bucket 中创建并用新图像替换旧图像。图像得到静止后,旧图像会显示给用户,因为 GET 操作我正在使用 Cloudfront,所以从云端缓存中检索旧图像。

那么有没有什么技术可以解决这个问题...

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon amazon-cloudfront


    【解决方案1】:

    与几乎每个 CDN 的情况一样,您必须使缓存无效才能让 CDN 开始提供新版本。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

    我建议阅读“添加、删除或替换分发中的对象”部分下该链接的所有内容。实际上,我建议您阅读所有 CloudFront 文档,以便了解您使用的服务是如何工作的。

    【讨论】:

      【解决方案2】:

      您可以通过将缓存 TTL 设置为 0 来解决您的问题。 转到“AWS 仪表板 | S3 | 您的存储桶 | 您的文件 | 编辑属性 | 元数据”。 将您的“Cache-Control”值设置为“max-age=0”。

      更多信息在这里: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html

      【讨论】:

      • 但在这种情况下,云端将变得毫无用处。由于图像不会从云端缓存中获取,因此无论用户是否更新它,它将始终从 s3 存储桶中获取。..
      • 所以,你需要找到一个平衡点。 0 或任何其他小值将允许您在较大的 TTL 会提高您的性能时提供动态内容,但您可能会遇到问题中描述的问题。作为另一种解决方案,您可以在更新源对象时手动或以编程方式运行失效任务。
      • 当然,这里有一个关于如何使用 python 进行操作的示例:boto3.readthedocs.org/en/latest/reference/services/…
      猜你喜欢
      • 2019-06-14
      • 1970-01-01
      • 2019-08-16
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 2014-02-22
      相关资源
      最近更新 更多