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


昨天我想更改一下我的評論表情包,但是無意間發現我把原來的表情包刪了,然后換上新的表情包,但是沒有效果,表情還是原來的,我刪除了緩存還是沒有 任何效果,於是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM