AWS CloudFront 缓存失效指南
Source: Dev.to

静态前端网站在不断增长的过程中需要保持更新。通常,静态网页内容是通过上传到 Amazon S3 存储桶的文件来提供,并通过 CloudFront 进行访问。一个常见的问题是,用户在新内容上传后仍然看到页面的旧版本。这是因为 CloudFront 对内容进行了缓存。
要解决此问题,需要执行 CloudFront 失效(invalidation)。本指南将一步步带你完成该过程,确保你的受众始终看到最新的内容。
什么是 S3 对象失效?
当你使用 Amazon S3 存储文件并使用 Amazon CloudFront 进行分发时,CloudFront 会在全球各地的边缘位置缓存文件的副本。这可以加快交付速度,因为数据离用户更近。
CloudFront 会保留这些缓存副本,直到它们过期(通常是 24 小时或更长)。如果你向 S3 上传了文件的新版本,CloudFront 并不会自动知道已更改。失效操作会告诉 CloudFront 删除其缓存的副本,并立即从 S3 获取新版本。
步骤指南:如何失效文件
-
访问 CloudFront 控制台
登录 AWS 管理控制台,在搜索栏输入 “CloudFront”,并选择该服务。 -
选择你的分配
找到将你的 S3 存储桶连接到网站的分配,点击其 Distribution ID。 -
创建失效
- 点击 Invalidations 选项卡。
- 按下橙色的 Create invalidation 按钮。
-
定义对象路径
在 “Object paths” 框中,填写你想要清除的文件路径。
重要提示: 不要粘贴完整的 URL——只需填写域名之后的路径。示例:对于位于
https://example.com/restaurant/dinner.pdf的文件,输入:/restaurant/dinner.pdf在页面底部点击 Create invalidation。
关键要点
- 前导斜杠:路径必须以正斜杠 (
/) 开头。 - 通配符:要清除整个文件夹,可使用星号,例如
/restaurant/*。 - 时间:失效通常需要 1–3 分钟在全球范围内完成。当状态从 “In Progress” 变为 “Completed” 时,新文件即已上线。
其他资源
有关网页缓存和高级失效模式的更多技术细节,请参考官方 AWS 文档: