如何从 CloudFront 中删除缓存的文件?

上次更新日期:2022 年 5 月 27 日

我更新了原始服务器上的文件。但是,Amazon CloudFront 仍在向我的用户提供旧内容。为何会出现这种情况,我该怎样解决呢?

简短描述

默认情况下,CloudFront 会根据源响应中的 缓存控制标头以及 CloudFront 分配缓存行为中的 最小、最大和默认 TTL 值在边缘站点缓存响应。

根据您配置的值,CloudFront 会提供缓存的文件,直到缓存过期为止。要立即提供更新的文件,请使文件失效以从 CloudFront 的缓存中删除对象。

注意:无法使使用 Cookie、查询字符串或标题来区分响应的特定版本的对象失效。使其失效的操作将删除对象的所有版本。

解决方法

重要提示:使文件失效可能会产生费用。有关更多信息,请参阅为文件失效付费

使用 AWS 管理控制台使文件失效

要使用 AWS 管理控制台使文件失效,请参阅 使用控制台使文件失效。 

使用 AWS CLI 使文件失效

注意:如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您运行的是最新版本的 AWS CLI

要使用 AWS CLI 使文件失效,请使用创建失效命令:

aws cloudfront create-invalidation ---distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
注意:将 EDFDVBD6EXAMPLE 替换为文件提供服务的发行版的 ID。

要查找失效的当前状态,请使用 get-invalidation 命令:

aws cloudfront get-invalidation --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注意:将 EDFDVBD6EXAMPLE 替换为文件提供服务的发行版的 ID。

要轮询失效状态直至其完成,请使用以下命令:

aws cloudfront wait invalidation-completed --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注意:将 EDFDVBD6EXAMPLE 替换为文件提供服务的发行版的 ID。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?