首页 > 技术文章 > cdn缓存立刻刷新

cutesnow 2021-08-09 18:11 原文

现在例如有一个业务需求是客户更新图片,那我们需要及时更新,可是正常的上传是无法及时更新的,因为七牛云会有客户端缓存和cdn缓存,这时候可能有多种处理方式:
 
1.cdn和客户端缓存的时间调短,例如1分钟,这样每分钟就都会更新,我们覆盖上传文件后一分钟后就能查看到新的。
 
优点:操作方便。
 
缺点:这会导致七牛云的回源流量增多,数据量大的情况下会增加很多费用。
 
七牛云的云文件读取机制如下:
 
2.每次更新的时候,更改文件名,如果上传成功,则删掉老文件。
 
优点:也能成功。
 
缺点:有点麻烦
 
3.每次覆盖上传,然后调用刷新接口:
 
优点:不是很难处理,也能实现
 
缺点:调用刷新接口后也要等七牛云的队列处理,有时候会阻塞很久,因为是队列处理也是异步。
 
4.(推荐)每次上传还是覆盖上传,然后将文件名加上更新时间参数进行访问,并且随机参数只有在更新的情况下会更新,也就是说要把这个文件名加更新时间保存起来,例如:
 
第一次传,文件名:‘a.jpg’,域名:www.bcd.com ,更新时间:20230809115402,在不更新的情况下,往后访问的外链就一直是‘http://www.bcd.com/a.jpg?20230809115402’
 
第二次更新,文件名:‘a.jpg’,域名:www.bcd.com ,更新时间:20230810185402,在不更新的情况下,往后访问的外链就一直是‘http://www.bcd.com/a.jpg?20230810185402’。
 
缺点:需要把随机数也保存起来
 
优点:及时更新就能及时访问到,并且cdn溯源流量只在更新的时候会产生,其他时候不会产生,并且是覆盖文件,所以不需要删除老文件。
 

推荐阅读