我们可以使用etags从CDN获取最新版本的图像

时间:2016-11-24 11:59:03

标签: cdn amazon-cloudfront akamai

我们有一个用例,我们将图像存储在CDN中。假设我们将a.jpg存储在缓存中,如果用户上传了较新版本的文件,那么它将刷新缓存并覆盖a.jpg。现在的挑战是浏览器可能已经缓存了该文件。由于我们无法在浏览器中刷新缓存的图像,因此我们考虑使用下面提到的两种方法之一:

  1. 附加一个版本a_v1.jpg,a_v2.jpg(版本ID是校验和),这将消除刷新浏览器和CDN缓存的需要。我在互联网上找到了很多关于这方面的文档,很多人都在使用它。
  2. 使用文件的etag查找消除浏览器中的陈旧缓存。我发现CDN支持etags,但我没有找到etag用于图像的文献。
  3. 您能否分享一下您使用etag标头进行缓存清除的想法?这是一个很好的做法吗?

1 个答案:

答案 0 :(得分:0)

我不会建议etag。这可能有其优势,但也有其挫折。假设当每个服务器提供的内容可能发生变化时,您正在运行两个服务器,然后是etag。

我建议最好的事情是控制浏览器的缓存时间和持续时间。 我的意思是当从cdn向客户端浏览器发送响应时发送到期标头,比如5分钟TTL。这样浏览器将尊重到期标头。一旦过期,浏览器将在刷新页面时向cdn发送新请求。