如何强制清除或无效Azure CDN内容?

Joh*_*ers 10 cdn azure-storage azure-storage-blobs microsoft-cdn

由于性能原因,我的内容很少会改变我想要通过Azure CDN提供的内容.但是,当内容确实发生变化时,更新数据立即可用非常重要.理想情况下,我可以设置一个长TTL但是当我更新它时主动告诉CDN使内容过期.我怎么能做到这一点?目前没有缓存失效或清除API,我宁愿不设置短TTL.

小智 10

在2015年12月,Azure团队添加了通过REST API刷新或清除CDN的功能(https://msdn.microsoft.com/en-us/library/mt634451.aspx).最初,此功能仅适用于使用新Azure门户(http://portal.azure.com)创建的端点,但是,使用旧管理界面创建的CDN将在2016年初迁移(https:/ /feedback.azure.com/forums/169397-cdn/suggestions/556307-ability-to-force-the-cdn-to-refresh-any-cached-con).


Guy*_*Guy 8

没有API可以使Azure CDN无效.

解决方法:

  1. 在Azure门户中的CDN上启用"查询字符串状态".然后你可以附加一个新的查询字符串名称和随机值,例如./images/background.png?v=1234

  2. 使用时间戳或随机值上载并重命名新文件.例如:/ images/background.20140917225200.png

  3. 设置较短的缓存标头并等待它过期.以下是Azure团队的一篇文章http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx

  • 谢谢,这基本上是我采取的路线,我们有一个DataVersion,我们在它改变时递增,并且客户端进行Out of Bend REST调用以找到最新的DataVersion,然后从CDN请求包含文件名中的文件的文件. (2认同)
  • Azure服务文件在更改后但在TTL到期之前,我们遇到了同样的问题.我们已经切换到Amazon S3,它允许失效(注意它需要花钱).此外,在我们的案例中,它更适合亚洲,澳大利亚和南美洲. (2认同)