【问题标题】:Amazon CloudFront Cache invalidation strategy to ensure fresh content and cost effectivenessAmazon CloudFront 缓存失效策略,以确保新鲜内容和成本效益
【发布时间】:2012-01-08 18:02:58
【问题描述】:

我正在努力思考应该使用什么方法来强制 CDN 刷新网站上的用户个人资料照片,其中 CloudFront 是提供个人资料照片的 CDN,而 S3 是基础文件存储。

我需要确保用户个人资料照片在用户更新他们的个人资料照片后立即更新。我看到三个选项可以用来更新个人资料照片并确保网站用户在个人资料照片修改后立即获得最新图像。在这些方法中,在确保新鲜内容和最大的长期成本效益方面,哪一种比另一种更好?是否有更好的方法来确保新鲜的内容和最大的长期成本效益?

  1. 发出一个 S3 put 对象请求以使用其原始文件名保存文件,并发出一个 Amazon CloudFront 失效请求。 Amazon CloudFront 每月最多允许 1000 个免费失效请求,这似乎有点偏低
  2. 发出一个 S3delete object 请求以删除原始照片,然后发出一个 S3 put object 请求以使用唯一的新照片文件名保存新照片。这将是每个文件更新两个 S3 请求,并且不需要 CloudFront CDN 失效请求。然后,CloudFront 将在更新后立即提供最新文件,并提供图像 URL 自动设置为新文件名
  3. 发出一个 S3 put 对象请求以使用其原始文件名保存文件,然后客户端将版本代码附加到 CDN URL(即 /img/profilepic.jpg?x=timestamp)或类似的东西。我不确定此策略在使缓存的 CloudFront 对象无效方面的效果如何

谢谢

【问题讨论】:

标签: asp.net-mvc-3 amazon-s3 amazon-cloudfront


【解决方案1】:

CloudFront 失效可能需要一段时间才能生效,建议作为最后的手段来删除必须删除的内容(如侵犯版权)。

最好的方法是对 URL 进行版本控制。对于个人资料图片,我将使用唯一 ID(例如 GUID)。每当用户上传新照片时,请替换该 URL(如果您愿意,还可以删除旧照片)。

当您使用用户个人资料照片的新 ID 更新数据库时,CloudFront 将提取新图像并且更改将立即生效。

【讨论】:

    猜你喜欢
    • 2015-07-21
    • 2017-09-20
    • 2011-06-27
    • 2022-08-08
    • 1970-01-01
    • 2011-04-07
    • 2019-02-22
    • 2018-09-17
    • 2022-01-23
    相关资源
    最近更新 更多