快取中

本頁討論可用的選項,說明如何控管 Cloud Storage 物件的快取方式。本頁面著重介紹 Cloud Storage 內建快取和 Cloud CDN,但 Cloud Storage 也與第三方 CDN 相容。

總覽

快取 Cloud Storage 物件時,物件資料副本會儲存在 Google 或網際網路快取中,以便在日後的請求中更快提供物件。快取功能可以提升效能,但如果更新物件後,快取仍繼續提供舊版物件,您可能會提供過時內容。

Cloud Storage 內建快取

Cloud Storage 的運作方式類似內容傳遞聯播網 (CDN),您不用執行任何操作,因為如果物件的 Cache-Control 中繼資料設為允許快取,且符合下列條件,系統就會在 Cloud Storage 網路中快取物件資料:

Cloud Storage 會遵守 Cache-Control標準值,例如:

  • public:物件可以快取。

  • private:物件不會由 Cloud Storage 快取,但可快取在要求者的本機快取中。

  • no-cache:可以快取該物件,但除非先經 Cloud Storage 驗證,否則該物件不能用於滿足將來的要求。

  • no-store:物件無法快取。

  • max-age=TIME_IN_SECONDS:物件在被判定為過時之前可以快取的時間長度。你可以將 max-age 設為任何時間長度。除非是特殊情況,否則快取不會提供過時的物件。

如要設定物件的 Cache-Control 中繼資料,請參閱「編輯物件中繼資料」。

使用 IAM 拒絕政策時的內建快取行為

如果組織層級 IAM 拒絕政策限制主體 ID allUsers讀取物件,即使值區層級 IAM 政策授予 allUsers 讀取物件的權限,系統也會停用物件的內建快取。不過,如果 IAM 拒絕政策只限制個別使用者,物件的內建快取功能仍會啟用。

效能注意事項

如果您使用的是可公開快取的物件,效能會大幅提升。如果您是透過單一物件控管多個用戶端,並想停用快取功能來提供最新資料,請採取以下步驟:

  • 建議將物件的 Cache-Control 中繼資料改為 public,並將 max-age 設為 15 至 60 秒。為了提升效能,多數應用程式可容許物件過時幾秒。

  • 利用 Cache-Control: no-store 限制物件,禁止系統將該物件存入任何快取以供後續要求使用。

搭配 bucket 使用 Anywhere Cache

Anywhere Cache 是全代管的 Cloud Storage 功能,可確保資料一致性,讓您在工作負載所在的區域建立快取。然後,系統會使用快取完成資料讀取要求,而非多區域值區,協助您控管儲存空間費用,同時執行大型資料密集型工作負載,否則這些工作負載會產生多區域資料傳輸費用,並影響效能。如要進一步瞭解 Anywhere Cache、其優點,以及這項功能的使用時機,請參閱 Anywhere Cache 總覽

搭配 Cloud CDN 使用 Cloud Storage

如要以最佳效能將內容傳遞給使用者,建議搭配使用 Cloud Storage 和 Cloud CDN。

如要使用 Cloud CDN,您必須使用外部應用程式負載平衡器,並將 Cloud Storage 值區做為後端。如需透過 Cloud Storage bucket 設定 HTTP(S) 負載平衡器的教學課程,請參閱「託管靜態網站」。

Cloud CDN 快取模式可讓您對所有物件套用統一的快取設定。Cloud CDN 會使用物件上設定的 Cache-Control 中繼資料,判斷物件的快取方式,除非您使用快取模式或 TTL 限制覆寫 Cache-Control 中繼資料。

在 Cloud Storage 內建快取和 Cloud CDN 之間做出選擇時,請考量下列事項:

功能 Cloud Storage Cloud CDN
可快取檔案大小上限 10 MiB 100 GiB 1
預設快取到期時間 1 小時 1 小時 (可設定)
支援透過 HTTPS 使用自訂網域
快取撤銷

1如果原始伺服器支援位元組範圍要求,Cloud CDN 可快取的檔案大小上限為 100 GiB。如果原始伺服器不支援位元組範圍要求,Cloud CDN 可快取的檔案大小上限為 10 MiB。

費用考量事項

就價格而言,選擇 Cloud Storage 內建快取或 Cloud CDN,取決於您每個月提供的資料量,這會決定您產生的網路費用。

  • 如果您每月提供的可快取資料不到幾 GiB,整體而言,使用 Cloud Storage 內建快取功能可能更划算。Cloud Storage 快取可能會產生比 Cloud CDN 更高的網路費用,因為系統會對快取和未快取的物件收取相同的輸出資料傳輸費用 (也就是說,您要為快取命中支付全額費用)。不過,您只需支付與 Cloud Storage 相關的資料儲存和作業使用費用,不必支付 Cloud Storage、Cloud CDN 和 Cloud Load Balancing 的組合費用。

  • 如果您每月提供的可快取資料量經常達到 100 GiB 以上,或是需要使用個別要求記錄和自訂標頭,整體而言,使用 Cloud CDN 可能會比較便宜。快取填補會產生 Cloud Storage 輸出資料轉移和 Cloud CDN 快取填補費用,快取填滿後則適用 Cloud CDN 網路價格。使用 Cloud CDN 節省的網路費用,可能足以抵銷維護外部應用程式負載平衡器、Cloud CDN 和 Cloud Storage 所產生的較高營運成本。

後續步驟