Amazon web services 如果在cloudfront后面,是否可以访问已删除的文件

Amazon web services 如果在cloudfront后面,是否可以访问已删除的文件,amazon-web-services,amazon-s3,amazon-cloudfront,Amazon Web Services,Amazon S3,Amazon Cloudfront,我正试图了解cloudfront和CDN是如何工作的。 如果我有一个文件,缓存控制头设置为1年,并且我使用amazon cloud front作为我的CDN。 如果删除该文件会发生什么情况?当它被cloudfront服务器缓存时,它还会被服务吗?它会在世界上所有的地方提供服务,还是只在边缘服务器上缓存一次请求 例如,我在Amazon Cloud Front后面有一个文件 blue.jpg,缓存控制头设置为1年 我从纽约的一个地方访问了这个文件 然后我删除该文件 如果我再次从纽约访问包含该文件的页

我正试图了解cloudfront和CDN是如何工作的。 如果我有一个文件,缓存控制头设置为1年,并且我使用amazon cloud front作为我的CDN。 如果删除该文件会发生什么情况?当它被cloudfront服务器缓存时,它还会被服务吗?它会在世界上所有的地方提供服务,还是只在边缘服务器上缓存一次请求

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

我从纽约的一个地方访问了这个文件

然后我删除该文件

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

如果有人带着来自俄罗斯莫斯科的文件访问该页面怎么办。他能查看文件吗


感谢您的帮助:)

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

默认情况下,CloudFront遵守http缓存控制头。如果您设置了头文件,使文件在一年内不会过期,CloudFront将在一年内继续为该文件提供服务,而无需返回原始服务器

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

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

从CloudFront文档()中:

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

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