You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取适用于AWS CLI的S3存储桶文件夹路径以执行CloudFront缓存失效操作

获取AWS CLI中用于CloudFront缓存失效的S3文件夹路径方法

我来帮你理清楚怎么拿到正确的路径,让CloudFront缓存失效精准命中你的目标目录和所有子内容:

核心前提:S3没有真正的“文件夹”

首先要明确,AWS S3本质是对象存储,没有传统意义上的文件夹——所谓的“文件夹”其实是对象键的前缀。比如你在S3控制台看到的assets/images/文件夹,实际对应的是所有键以assets/images/开头的对象(比如assets/images/logo.png、assets/icons/btn.svg这类)。CloudFront的缓存失效路径就是基于这个前缀来构造的。

步骤1:确认S3对象的前缀结构

先用AWS CLI命令查看目标存储桶里的对象键,确认你要失效的目录对应的前缀:

aws s3 ls s3://your-bucket-name/ --recursive

执行后会列出所有对象的完整键,比如:

2024-05-20 10:00:00          0 docs/reports/
2024-05-20 10:05:00      12345 docs/reports/2024/q1.pdf
2024-05-20 10:10:00      67890 docs/reports/2024/q2.pdf
2024-05-20 10:15:00       1234 docs/reports/2023/annual.pdf

这里目标“目录”对应的前缀就是docs/reports/。

步骤2:构造CloudFront缓存失效路径

按照你提到的格式要求,把S3前缀转换成CloudFront能识别的失效路径:

  1. 给前缀加上开头的斜杠(因为CloudFront的路径是从分发根目录开始的)
  2. 最后加上*,表示匹配该路径下的所有子目录和文件

比如上面的前缀docs/reports/就变成:

/docs/reports*

注意:不需要包含S3存储桶名,因为CloudFront的路径是相对于你的分发原点(如果原点是S3桶,路径直接对应对象键的前缀部分)。

步骤3:验证并执行缓存失效

用构造好的路径执行CloudFront失效命令:

aws cloudfront create-invalidation --distribution-id YOUR-CLOUDFRONT-DIST-ID --paths "/docs/reports*"

执行成功后,CloudFront会把所有匹配/docs/reports*的路径缓存标记为失效,用户就能访问到S3里的最新文件了。

额外注意事项

  • 如果你的CloudFront分发配置了自定义原点路径(比如原点路径设为/static),那要调整失效路径:比如S3里的static/assets/前缀,对应CloudFront的路径就是/assets*,因为原点路径会自动加上前缀映射到S3对象。
  • 避免末尾多斜杠:比如不要写成/docs/reports/*,这样只会匹配docs/reports/下直接的文件,不会包含子目录;而/docs/reports*会匹配所有以docs/reports开头的路径,包括子目录里的内容。

内容的提问来源于stack exchange,提问作者Urvesh Ghelani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 13:37:27