快取中

本頁面將說明可用來控制 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 拒絕政策,限制 主體 ID allUsers 對物件的讀取存取權,則系統會停用物件的內建快取功能,即使有值區層級的 IAM 政策將物件的讀取存取權授予 allUsers 也一樣。不過,如果 IAM 拒絕政策只限制個別使用者,則系統仍會為物件啟用內建快取功能。

效能注意事項

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

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

  • 將物件設為 Cache-Control: no-store,禁止系統將該物件儲存於任何快取,供後續要求使用。

搭配值區使用 Anywhere Cache

Anywhere Cache 是完全受管理且一律保持一致的 Cloud Storage 功能,可讓您在與工作負載相同的區域中建立快取。接著,您就可以使用快取來完成資料讀取要求,而非使用多區域儲存桶,這樣一來,您就能在執行大量資料密集工作負載時控管儲存空間成本,否則這類工作負載會產生多區域資料傳輸費用,並影響效能。如要進一步瞭解 Anywhere Cache、其優點,以及何時應使用這項功能,請參閱Anywhere Cache 總覽

搭配 Cloud CDN 使用 Cloud Storage

為了在為使用者提供內容時發揮最佳效能,建議您搭配使用 Cloud Storage 和 Cloud CDN。

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

Cloud CDN 快取模式可讓您在所有物件中套用統一的快取設定。除非您使用快取模式或 TTL 限制覆寫 Cache-Control 中繼資料,否則 Cloud CDN 會使用物件上的 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 的營運成本可能會提高,因此這項節省的網路成本可能不值得。

後續步驟