4

有没有办法让 Amazon CloudFront 失效(通过管理控制台),使所有匹配模式的文件失效?例如图片/*.png

语境 -

  1. 我在我的网站上为图像设置了缓存控制,但错误地在 Apache 的缓存指令中遗漏了 png 扩展名。所以 .gif/.jpg 文件被缓存在用户计算机上,但 .png 文件没有。
  2. 所以我修复了 apache 指令,现在我的 apache 服务器使用适当的缓存控制指令提供 png 文件。我对此进行了测试。
  3. 但是云端过去已经获取了那些 png 文件,所以通过云端访问这些 png 文件仍然会带来那些没有缓存控制的 png 文件。最终结果 - 仍然没有用户缓存这些 png 文件
  4. 我尝试将 Amazon CloudFront 控制台中的失效设置为 images/*.png。控制台说完成,但我仍然没有在 png 文件中获得缓存控制指令。--> 让我相信失效并没有发生。
  5. 我可以为完整的图像目录设置失效;但是我有太多的图像文件——>为此我会被收取 > 100 美元的费用。所以试图避免这种情况。
  6. 更改图像版本以便云端获取新版本在我的代码中是一项痛苦的练习;为 500 个 png 文件做这件事会很痛苦。--> 尽量避免。
  7. 列出单个 png 文件也是一种痛苦——> 也试图避免它。

谢谢,-阿米特

4

1 回答 1

2

如果您的 CloudFront 分配配置在 S3 存储桶之前,您可以列出 S3 存储桶中的所有对象,使用正则表达式模式(例如,/*.png/i)过滤它们,然后使用该列表构建您的失效请求。

反正我就是这么做的。我希望这有帮助!:)

于 2012-10-05T09:29:06.527 回答