作者:張醫博
場景描述
對象存儲(OSS)主要場景是在文件存儲以及對文件管理的雲產品。不帶有文件下行或者上行加速的功能,很多用戶也會通過 CDN + OSS 的方式結合,通過 CDN 的優勢加速文件訪問速度。那麼怎麼能保證 CDN 緩存下的文件在原站(OSS)更新的情況下自動更新呢? 今天就說下自動刷新的功能;
what Refresh
使用過 CDN 都知道 它本身帶有刷新接口功能,在調用刷新時被動的將 CDN 緩存住的舊文件內容刷新掉,但用戶需要預知有哪些文件,或者這些文件在哪些目錄;如果量級少還可以,如果幾十萬量級的 URL 用戶端很一次性蒐集完,而且調用刷新接口也需要大量的時間等待。如果用戶的文件是存在 OSS 上,OSS 提供了這個自動刷新的功能,替代用戶手動蒐集 URL 提交刷新的過程;
開啟 OSS 自動刷新
CDN 控制檯
在 CDN 控制檯,域名管理界面將原站類型改為用戶要綁定的 OSS 地址即可;(這裡要注意如果你的 OSS 是私有的,要把 CDN 私有bucket 回源功能開啟,否則會導致 CDN 回源到 OSS 失敗。如果客戶端請求 URL 中帶了 OSS簽名,那可以不用開啟此功能)
OSS 控制檯
當 CDN 已經配置好,在 OSS 控制檯的域名管理界面可以看到已經出現 “自動刷新“ 開源,點開按鈕即可開啟;
開啟效果
1、用戶上傳同名文件到 OSS 後,OSS 會主動調用 CDN 刷新接口將舊文件清理掉;
2、OSS 刷新的任務優先級比主動掉 CDN 刷新接口的優先級低,這是正常現象,因為 OSS 操作文件的量突發性會大;
3、當用戶文件幾十萬或者百萬,同時在線更新時,OSS 調用 CDN 的刷新任務會出現排查情況,因為為了保護接口穩定性,每個賬號下的任務併發數量是有限制的。所以建議用戶端能分批去更新 OSS文件;
4、OSS 的刷新會佔用 CDN 的刷新配額;
5、如果 OSS 的文件被刪除後,也會調用 CDN 刷新將文件 cache 清理掉;