zoukankan      html  css  js  c++  java
  • cdn缓存立刻刷新

    现在例如有一个业务需求是客户更新图片,那我们需要及时更新,可是正常的上传是无法及时更新的,因为七牛云会有客户端缓存和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溯源流量只在更新的时候会产生,其他时候不会产生,并且是覆盖文件,所以不需要删除老文件。
     

    ------ 往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
  • 相关阅读:
    mysql支持跨表delete删除多表记录
    三种循环的流程图画法总结
    巧用svn create patch(打补丁)方案解决定制版需求
    svn branch and merge(svn切换分支和合并)详解
    visualvm
    Java -verbose[:class|gc|jni] 转 ----JAVA源码分析
    BootstrapClassloader ExtClassloader AppClassloader
    LINUX 源码+内核所有参数说明
    SDN
    人工智能之数学基础
  • 原文地址:https://www.cnblogs.com/cutesnow/p/15119930.html
Copyright © 2011-2022 走看看