【问题标题】:Are deleted files accessible if behind cloudfront如果在 cloudfront 后面,是否可以访问已删除的文件
【发布时间】:2013-07-19 23:56:34
【问题描述】:

我正在尝试了解云端和 CDN 的工作原理。 如果我有一个文件并且缓存控制标头设置为 1 年,并且我使用亚马逊云前端作为我的 CDN。 如果我删除文件会怎样?是否仍会因为它被云端服务器缓存而提供服务?它会在世界各地提供服务,还是仅在被请求一次时才缓存在边缘服务器上。

例如,我在 Amazon Cloud Front 后面有一个文件 缓存控制标头设置为 1 年的 blue.jpg

我从纽约的某个位置访问该文件

然后我删除文件。

如果我再次从纽约访问包含该文件的页面,该文件是否会作为其缓存服务?

如果有人从俄罗斯莫斯科访问带有文件的页面怎么办。他可以查看文件吗?

感谢您的帮助:)

【问题讨论】:

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


    【解决方案1】:

    CloudFront 只是靠近您的用户的缓存集合。每个边缘位置独立运行。

    默认情况下,CloudFront 遵循您的 http 缓存控制标头。如果您将标头设置为文件不会在一年内过期,CloudFront 将继续为该文件提供一年的服务,而不会检查回您的源服务器。

    由于每个边缘站点都是独立运行的,因此在您的示例中,纽约将继续提供文件,但莫斯科会将文件视为已删除 (404)。正如您所想象的,这可能会导致不同的用户看到不同的内容。

    有一些策略可以避免这个问题。

    来自 CloudFront 文档 (http://aws.amazon.com/cloudfront/#details):

    对象版本控制和缓存失效 您有两个选项来更新缓存在 Amazon CloudFront 边缘站点的文件。您可以使用对象版本控制来管理对内容的更改。要实现对象版本控制,您在源服务器中为文件的每个版本创建一个唯一的文件名,并在您的网页或应用程序中使用与正确版本相对应的文件名。借助这种技术,Amazon CloudFront 可以缓存您想要的对象版本,而无需等待对象过期才能提供更新的版本。

    您还可以随时通过调用失效 API 从所有 Amazon CloudFront 边缘站点中删除文件的副本。无论您在源服务器上为该文件设置的到期期限如何,此功能都会从每个 Amazon CloudFront 边缘站点中删除该文件。如果您需要一次删除多个文件,您可以在 XML 文档中发送文件列表(最多 1,000 个)。失效功能旨在用于意外情况,例如,纠正您上传的视频的编码错误或对您网站的 CSS 文件的意外更新。但是,如果您事先知道您的文件会经常更改,则建议您使用对象版本控制来管理对文件的更新。这种技术让您可以更好地控制更改何时生效,还可以避免因对象无效而产生的潜在费用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2012-07-16
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多