Skip to content
所有文章 ‹ Part 08 of 18 · Cache 不是方塊,是一條鏈
工程 · 1 min read

Akamai 工具:purge 和 CLI

用 Akamai CLI 確認檔案、purge、再確認一次。比較 invalidate 和 delete,看懂 x-cache,以及為什麼 purge 只清得到 CDN 這一層。

我用 Akamai CLI 走完一個循環:確認檔案、purge,再確認一次。

檔案更新後,使用者還看到舊版,第一個想到的通常是 purge。我想先搞懂 purge 到底做了什麼。

兩種 purge

InvalidateDelete
動作把副本標成過期刪掉副本
下一個 request帶 ETag 去問,可能拿到 304重新下載整個檔案
origin 負擔低高
用途一般更新舊版絕對不能再出現
  • 我們有好幾個上傳服務,只有少數會呼叫 purge。其他的只靠 TTL 到期。

常用指令

curl -sI "https://cdn.example.com/assets/{id}/{file}"   # 記下 date 和 etag
akamai --section default purge invalidate --staging "<url>"  # 憑證在 ~/.edgerc

Purge 後等 5 秒,再 curl 一次(加上 Pragma: akamai-x-cache-on):

 HTTP/2 200
 etag: "32b7140e..."
-date: Sat, 18 Oct 2026 08:00:00 GMT
-x-cache: TCP_HIT from a23-...
+date: Sat, 18 Oct 2026 08:05:07 GMT
+x-cache: TCP_REFRESH_HIT from a23-...
  • x-cache 從 TCP_HIT 變成 TCP_REFRESH_HIT:副本變成過期,edge 回 origin 問過。
  • etag 沒變:檔案內容一樣,origin 回 304,edge 沿用原本的副本(Cache 的新鮮度:fresh、stale 和 304)。

Purge 只清得到 CDN 這一層。我當時以為 origin 後面沒有別的 cache,所以清完 CDN 就一定拿到新檔。後來才發現這個假設不成立(兩層 cache:我原本以為的樣子)。

Purge 清的是你看得到的那一層。看不到的那一層,會把舊檔再補回來。

參考來源:Akamai: EdgeGrid, Akamai: purge methods

延伸閱讀:Cache 的新鮮度:fresh、stale 和 304、Akamai property:一份 edge 設定、兩層 cache:我原本以為的樣子。或回到系列總覽。

↑↓ 移動 ↵ 開啟 esc 關閉