1

考虑一个发布到 Rackspace Cloud Files 的文件。如果我在中午更新这个文件,迁移到边缘 CDN 需要多长时间?CDN 是否仅根据容器的 TTL 使文件过期,还是 Cloud Files 在文件更改时通知 CDN?

在开发过程中,用户可以编辑/更新一组图像/文件,并将更新的文件推送到 Cloud Files(具有相同的文件名)。那时我想确保将文件推送到边缘 CDN。我已经阅读了有关清除的内容,但我认为这不是正确的用例。我还阅读了 TTL,我认为将容器设置为低 TTL 是不合适的,因为这些图像不会经常更改。但是当它们确实发生变化时,我预计这种变化会迅速蔓延到边缘 CDN。

选项

  1. 配置云文件以立即将更改推送到边缘 CDN。(这甚至可能吗?)
  2. 当文件更改时,删除旧文件并为更新的文件使用新名称。(这似乎是最好的选择,但我也喜欢有可预测的文件名——这需要伪随机或带时间戳的文件名。)
4

1 回答 1

2

CDN 的工作方式是,当第一次请求文件时,会从源服务器检索资源。资源在响应期间被缓存在 CDN 的边缘服务器上,然后才交付给客户端。因此,根据后续请求,资源将通过 CDN 交付。

这意味着,如果您从边缘服务器交付图像,然后在源服务器上对该图像进行更改,则旧图像将继续通过 CDN 交付,直到您执行以下操作之一:

  • 清除缓存,从而允许边缘服务器从源检索图像的新版本
  • 等到 max-expire 时间用完,以便边缘服务器将查找源以进行任何更改
  • 如果您使用的是推送区域,请按照您的建议使用文件名版本控制。

一些 CDN 提供商提供使用推送或拉取区域的选项(请参阅此处的区别)。因此,这取决于您使用的是哪种方法。如果您实施推送区域,您可以手动上传所有文件以托管在 CDN 的存储云上,那么文件名版本控制是您的最佳选择。如果您使用的拉取区域会自动检测您的静态资产并重写 URL 以反映 CDN URL,那么在资产编辑后清除资产可能是您的最佳选择。

于 2016-02-03T15:54:51.317 回答