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

1 分钟阅读
0

我更新了原始服务器上的文件。但是,Amazon CloudFront 仍在向我的用户提供旧的内容。

概述

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

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

**注意:**您无法让使用 Cookie、查询字符串或标头来区分响应的某个对象的特定版本失效。让文件失效会删除对象的所有版本。

解决方案

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

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

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

使用 AWS CLI 使文件失效

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

要使用 AWS CLI 使文件失效,请使用 create-invalidation 命令:

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。

相关信息

为什么 CloudFront 还在提供 Amazon S3 中已过时的内容?

AWS 官方
AWS 官方已更新 2 年前