七牛 | 刷新缓存的方法
今天把『大学毕业留念册』,弄成了网页版,当中也是修修改改的,但是覆盖的文件并没有生效,其导致原因的“罪魁祸首”就是七牛的CDN缓存造成的。
解决这个问题主要有主动提交刷新缓存请求和通过携带随机 URL 参数刷新。
一、提交刷新请求的方法有三种
1.在 七牛开发者中心 左侧产品列表中找到融合 CDN ,进去后点击“刷新预取”。按要求填写需要刷新的 URL,点击提交即可。
2.工具刷新
使用七牛云提供的 qshell 命令行工具,参考使用文档,先设置密钥,然后执行 cdnrefresh 命令来刷新缓存。
3.通过API 接口提交刷新请求
七牛各服务端的 SDK 都提供了刷新缓存的方法。
二、通过携带随机 URL 参数刷新
实现方法:
例如,如果 http://odum9helk.qnssl.com/resource/gogopher.jpg 这个图片资源没有更新,可以在该 URL 后面加上问号随机参数的形式来让 CDN 强制刷新:http://odum9helk.qnssl.com/resource/gogopher.jpg?v=1234567 ,CDN 拿到这个 URL 后会强制回源站中取回最新的资源。
实现原理:
如果域名没有开启忽略 URL 参数,那么在 CDN 节点上,对于:
http://odum9helk.qnssl.com/resource/gogopher.jpg
http://odum9helk.qnssl.com/resource/gogopher.jpg?v=1
http://odum9helk.qnssl.com/resource/gogopher.jpg?v=2
这三个 URL 是独立缓存的。所以,如果携带之前没用过的参数访问,CDN 会强制回源站中取回最新的资源。
注意事项:
1.关闭忽略 URL 缓存的域名,才可以使用这种方法刷新
2.若使用 http://odum9helk.qnssl.com/resource/gogopher.jpg?v=1 访问一次,不会刷新 http://odum9helk.qnssl.com/resource/gogopher.jpg 的缓存。所以如果要保证访问到最新的资源,需要携带之前没有使用过的参数。
3.此方法适用于需要频繁更新的文件,为保证参数不重,可以在每次更新文件后,携带的参数 +1 ,或者取 unix 时间戳来作为参数。
您阅读这篇文章共花了: