我的 S3 存储桶托管一个静态网站。我没有设置cloudfront。
我最近更新了 S3 存储桶中的文件。当文件更新时,我在存储桶中手动确认。它仍然提供旧版本的文件。 S3 上托管的静态网站是否存在某种缓存或版本控制?
到目前为止我还没有找到任何解决方案。注意:Cloudfront 未启用。
解决方案在这里:
但你需要使用CloundFront。就像 @Frederic Henri 所说,您不能在 S3 存储桶本身中做太多事情,但是使用 CloudFront,您可以使其无效。
CloudFront 会在边缘站点上缓存该文件 24 小时,这是默认的 TTL(生存时间),并将继续返回该文件 24 小时。然后,24 小时结束后,如果对该文件发出请求,CloudFront 将检查源并查看该文件是否已在 S3 存储桶中更新。如果已更新,CloudFront 将提供该对象的新更新版本。如果尚未更新,则 CloudFront 将继续提供对象的原始版本。
但是,如果您在源中更新文件并希望立即通过您的网站提供该文件,则需要做的是 CloudFront 失效。失效会擦除 CloudFront 缓存中的文件,因此当向 CloudFront 发出请求时,它将发现缓存中没有文件,然后检查源并在源中提供新的更新文件。建议每次在源中更新文件时运行失效。
要运行失效:
- 单击以下 CloudFront 控制台链接
--https://console.aws.amazon.com/cloudfront/home?region=eu-west-1#
- 打开有问题的发行版
- 单击所有选项卡右侧的“无效”选项卡
- 点击“创建失效”
- 在弹出窗口中,它会询问路径。您可以输入 /* 以使缓存中的每个对象失效,或输入文件的确切路径,例如 /images/picture.jpg
- 最后点击“无效”
- 这通常会在 2/3 分钟内完成
- 然后,一旦失效完成,当您通过 CloudFront 再次请求该对象时,CloudFront 将检查源并返回更新的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)