七牛雲存儲更新緩存圖片的方法

昨天我想更改一下個人評論表情包,可是無心間發現我把原來的表情包刪了,而後換上新的表情包,可是沒有效果,表情仍是原來的,我刪除了緩存仍是沒有 任何效果,因而F12查看了一下表情的路徑後才發現緣由:表情的路徑是七牛,由於我使用了CDN加速,原來的圖片資源都已經緩存到了七牛,那麼我網站打開 的時候就涉及到一個優先級的問題,就是說打開網站以後會檢查圖片等資源是否已經緩存,若是緩存過就會加載緩存的舊的資源,若是沒有緩存才加載本地資源,所 以這就能夠解釋上面的狀況了:由於個人評論表情圖片已經緩存過了,因此就算我本地修改了仍是沒有加載出來,而是使用緩存的舊的表情,那麼怎麼解決呢?很顯 然就想到了刪除舊的緩存,或者說更新緩存,而後就能夠了,我網上找了不少的資源,最後終於解決了。
下面說說刪除七牛緩存的方法:(3種)
首先建議你們操做以前先關閉CDN加速功能,好比我使用的是WP super cache的CDN加速,我是關閉以後再刪除的緩存文件,而後刪除緩存以後再從新打開CDN加速功能,推薦你們這樣操做。好了,看下面三種方法吧:
1.登錄七牛的管理平臺,在「內容管理」中刪除緩存的舊文件。

2. 登錄 WordPress 管理後臺,在七牛的緩存插件中找到「文件更新」的選項,一樣輸入舊文件的路徑便可。當提示成功信息時,就表示舊文件已經刪除掉了,七牛會從新緩存新文件。


3.(推薦) 登錄七牛的管理平臺,依次打開「空間設置」——「高級設置」——「緩存刷新」,在「去刷新」的彈出框中輸入舊文件的路徑便可。一次最多可輸入10個url地址。

上面介紹的三種文件更新方式,我使用的是第三種,也推薦你們使用第三種(注意,瀏覽器自己也有緩存功能,所以要查看更新,能夠重開一個瀏覽器,或者使用瀏覽器的強制刷新功能 Ctrl + F5),千萬記住通常狀況都須要清除緩存才能看見效果 :grin:
後來我使用了第三個方法,大概幾分鐘就生效了。所以你們在更新文件時,能夠嘗試不一樣的方法。
這裏有一篇七牛官方的關於緩存機制的介紹,感興趣的能夠看一下,爲本身理解七牛的緩存和本身的使用提供幫助。瀏覽器

七牛雲存儲緩存機制
瀏覽器緩存
用戶從瀏覽器(或者 App 客戶端)請求一個 URL 時,瀏覽器首先會判斷該資源曾經是否被請求過是否被緩存過,若是該資源在客戶端被緩存了,就會直接返回給客戶端。這是瀏覽器的緩存。目前七牛雲存儲會在輸 出每一個資源時輸出 Cache-Control: public, max-age=31536000 和 ETag: FsODI_568V_-16UxMM7JzqyS2Hx0 這樣的頭部來進行緩存控制。該 Cache-Control 頭部表示該請求能夠在客戶端緩存一年時間,31536000 爲秒,表示從當前時間開始的相對時間,在該時間內訪問同一個 URL,瀏覽器不會再次向服務端請求,而是會直接將瀏覽器緩存中的資源返回給客戶端用戶。ETag是該資源在服務器端的 「指紋」。當請求頭部的 Cache-Control 時間過時以後,瀏覽器會向服務端發送請求新文件的新請求,該請求會帶上這個 Etag 作驗證,判斷所請求的資源在服務端是否確實有變化。值得注意的是,因爲 Cache-Control 設置的時間爲一年,當服務端有更新時,須要在瀏覽器強制刷新瀏覽器纔可能發送驗證 Etag 的請求。
CDN 緩存
用戶從瀏覽器請求一個七牛雲存儲上的資源後,七牛雲存儲會將其分發到離用戶最近的 CDN 節點上緩存下來,用戶訪問到的時 CDN 上的資源。用戶下次再次向七牛的服務端請求的時候,訪問到的仍是 CDN 緩存中的資源。所以,資源在七牛的服務端更新以後,不必定可以當即反饋到客戶端。
目前,咱們的作法是,在七牛存儲上的資源更新以後,需大約 10 分鐘左右時間讓 CDN 上的緩存失效。用戶可在 10 分鐘後看到最新的資源。若是 10 分鐘後客戶端還沒看到緩存更新,能夠先排查下客戶端的瀏覽器緩存是否已經失效,若是沒有失效能夠採用強制刷新的形式來訪問最新資源。
若是瀏覽器端強制刷新也無效,多是由於當前 CDN 節點中的該緩存還沒有失效(這種狀況不多見)。要確認 CDN 緩存是否過期,能夠在 URL 後面加上版本參數的形式來讓 CDN 強制刷新,好比 http://ikbear.qiniudn.com/iphone.jpg?v=20130910。CDN 拿到這個 URL 後會強制回七牛的存儲中取回最新的資源。這種加版本的方法僅用於驗證 CDN 緩存是否失效,要想正確使用版本的方法管理 CDN 緩存,參見下面的 「CDN 緩存最佳實踐」 一節。
若是確認 CDN 緩存比較舊,可使用咱們的管理後臺https://portal.qiniu.com/ => 選擇一個空間 => 空間設置 => 高級設置 => 緩存刷新 來進行緩存的強制刷新。
CDN 緩存最佳實踐
咱們整理了 CDN 緩存相關的最佳實踐:
http://developer.qiniu.com/resource/best-practice-of-qiniu.pdf
供參考。


參考網址:
http://xuzefeng.cn/20150131/1897
http://kb.qiniu.com/Qiniu-Cloud-Storage-Cache-Strategy七牛雲存儲

相關文章
相關標籤/搜索