强制刷新CloudFront分发/文件更新

156

我正在使用亚马逊的CloudFront服务来提供我的Web应用程序的静态文件。

有没有办法告诉CloudFront分配需要刷新文件或指出应该刷新的单个文件?

亚马逊建议您为文件命名版本,例如logo_1.gif,logo_2.gif等,作为解决此问题的变通方法,但这似乎是一个相当愚蠢的解决方案。难道绝对没有其他方法吗?


1
可能是如何在亚马逊CDN(CloudFront)上更新文件?的重复问题。 - Steffen Opel
作为旁注,我认为这样命名静态文件并不愚蠢。我们一直在使用它,并且根据版本控制中的文件版本进行自动重命名已经为我们节省了很多麻烦。 - eis
1
除非你需要替换的文件已经在1000个不同的在线位置链接,否则@eis是无法实现的。祝你好运更新所有这些链接。 - Jake Wilson
@Jakobud,为什么在这种情况下链接应该被更新?它们指向的是特定版本,而不是最新版本,如果文件已经更改。如果文件没有更改,它将像以前一样工作。 - eis
6
有时候,一家公司会在发布某个东西的图片或其他类型的内容时犯错,导致他们收到了律师事务所的下架通知并需要更换文件。仅仅上传一个新文件并改名并不能解决这种问题,而这种问题越来越普遍了。 - Jake Wilson
我已经在@SteffenOpel提到的重复问题的答案中总结了可能的解决方案,网址为https://dev59.com/z3NA5IYBdhLWcg3wHp-B#66976601。 - Aidin
13个回答


2
只是发布一条消息,告知访问此页面的任何人('Cloudfront File Refresh' 的第一个结果),在 swook.net 上有一个易于使用和访问的在线失效器
这个新的失效器是:
  • 完全在线(无需安装)
  • 24x7 可用(由 Google 托管),不需要任何会员资格。
  • 有历史记录支持和路径检查,让您轻松失效文件。(通常在第一次失效后仅需几次点击!)
  • 它也非常安全,当阅读其发布帖子时,您会发现。
完整披露:我制作了这个。玩得开心!

2
抱歉,即使“你说”凭证未被存储或泄露...一个人永远不应该将自己的凭证交给第三方。也许可以实现远程亚马逊认证或其他方式? - d.raev
你至少应该将这个放在 HTTPS 后面。 - Oliver Tynes
在线工具通常很好用,但是向第三方工具提供凭据将是一个有效的安全问题。我建议使用官方网页控制台或官方CLI工具 - RayLuo
3
为了他人的安全,我对这个答案进行了投票。你永远不应该要求他人提供证书。 - Moataz Elmasry

1
如果你使用AWS,那么你很可能会使用它的官方CLI工具(早晚都会)。AWS CLI 1.9.12或更高版本支持使一组文件名失效。
完整披露:这是我做的。玩得开心!

链接失效 - 导致404错误 :( 我无法更新它,因为版本1.9.12在发布说明中缺失 (https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23cli) - SlyDave
兄弟,那是近3年前发布的版本。尝试使用最新版本,该功能可能仍然存在。(完全透明披露:我不再从事AWS CLI工作。) - RayLuo
哦,我知道了,只是觉得很奇怪,在所有的发行说明中,只有1.9.12不存在:D(这就是我所说的无法更新链接的原因)。这个评论更多的是给那些像我一样来到这里并需要找到AWS CLI的发行说明的人一个提示。没有伤害,也没有过失。 - SlyDave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接