共用方式為


管理 Azure 內容傳遞網路中 Azure Blob 儲存體的期限

重要

Microsoft (傳統) 的 Azure 標準 CDN 將於 2027 年 9 月 30 日淘汰。 為了避免任何服務中斷,請務必在 2027 年 9 月 30 日之前將您的 Microsoft (傳統) 的 Azure 標準 CDN 設定檔移轉到 Azure Front Door 標準或進階層。 如需詳細資訊,請參閱 Microsoft (傳統) 的 Azure 標準 CDN 淘汰

Azure 儲存體中的 Blob 儲存體服務是數個已與 Azure 內容傳遞網路整合之 Azure 型來源的其中一個。 任何可公開存取的 Blob 內容均可在 Azure 內容傳遞網路中加以快取,直到其存留時間 (TTL) 結束。 TTL 是由來自原始伺服器之 HTTP 回應中的 Cache-Control 標頭所決定。 本文章會說明幾種可設定位於 Azure 儲存體中,Blob 上的 Cache-Control 標頭的方法。

您也可以藉由設定內容傳遞網路快取規則,從 Azure 入口網站控制快取設定。 如果您建立快取規則,並將其快取行為設定為 [覆寫] 或 [略過快取],就會忽略本文所討論之原始提供的快取設定。 如需一般快取概念的相關資訊,請參閱快取如何運作

提示

您可以選擇不替 blob 設定 TTL。 在此情況下,除非您已在 Azure 入口網站中設定快取規則,否則 Azure 內容傳遞網路會自動套用七天的預設 TTL。 此預設 TTL 僅會套用至一般 Web 傳遞最佳化。 針對大型檔案的最佳化,預設 TTL 為一天;針對媒體串流最佳化,預設 TTL 則為一年。

針對 Azure 內容傳遞網路如何加快對 blob 和其他檔案的存取速度,如需詳細資訊請參閱 Azure 內容傳遞網路概觀

若要深入了解 Azure Blob 儲存體,請參閱 Blob 儲存體簡介

使用內容傳遞網路快取規則設定 Cache-Control 標頭

設定 blob Cache-Control 標頭的慣用方法為在 Azure 入口網站中使用快取規則。 如需內容傳遞網路快取規則的詳細資訊,請參閱使用快取規則控制 Azure 內容傳遞網路快取行為

注意

快取規則僅適用於「來自 Edgio 的 Azure CDN 標準」設定檔。 針對「來自 Edgio 的 Azure CDN 進階」設定檔,您必須使用 [管理] 入口網站中的 Azure 內容傳遞網路規則引擎來執行類似功能。

瀏覽至 CDN 快取規則頁面

  1. 在 Azure 入口網站中,選取內容傳遞網路設定檔,然後選取 blob 的端點。

  2. 在左窗格的 [設定] 下方,選取 [快取規則]

    [內容傳遞網路快取規則] 按鈕的螢幕擷取畫面。

    [快取規則] 頁面隨即出現。

    [內容傳遞網路快取] 頁面的螢幕擷取畫面。

使用全域快取規則設定 blob 儲存體服務的 Cache-Control 標頭:

  1. 在 [全域快取規則] 下方,將 [查詢字串快取行為] 設定為 [忽略查詢字串],並將 [快取行為] 設定為 [覆寫]

  2. 在 [快取到期期間] 的 [秒鐘] 方塊中輸入 3600 或在 [小時] 方塊中輸入 1。

    內容傳遞網路全域快取規則範例的螢幕擷取畫面。

    這個全域快取規則會設定一小時的快取期間,並影響針對端點的所有要求。 它會覆寫由端點指定之原始伺服器所傳送的任何 Cache-ControlExpires HTTP 標頭。

  3. 選取 [儲存]。

使用自訂快取規則設定 blob 檔案的 Cache-Control 標頭:

  1. 在 [自訂快取規則] 下,建立兩個比對條件:

    A. 在第一個比對條件,將 [比對條件] 設為 [路徑],並在 [符合值] 輸入 /blobcontainer1/*。 將 [快取行為] 設定為 [覆寫],並在 [時數] 方塊中輸入 4。

    B. 在第二個比對條件,將 [比對條件] 設為 [路徑],並在 [符合值] 輸入 /blobcontainer1/blob1.txt。 將 [快取行為] 設定為 [覆寫],並在 [時數] 方塊中輸入 2。

    內容傳遞網路自訂快取規則範例的螢幕擷取畫面。

    第一個自訂快取規則會替您的端點指定之來源伺服器上 /blobcontainer1 資料夾中的所有 blob 檔案,設定四個小時的快取期間。 第二個規則只會針對 blob1.txt blob 檔案覆寫第一個規則,為其設定兩個小時的快取期間。

  2. 選取 [儲存]。

使用 Azure PowerShell 設定 Cache-Control 標頭

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

Azure PowerShell 是其中一種最快速、最強大的 Azure 服務管理方式。 請使用 Get-AzStorageBlob Cmdlet 來取得 Blob 的參考,然後設定 .ICloudBlob.Properties.CacheControl 屬性。

例如:

# Create a storage context
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key>"

# Get a reference to the blob
$blob = Get-AzStorageBlob -Context $context -Container "<container name>" -Blob "<blob name>"

# Set the CacheControl property to expire in 1 hour (3600 seconds)
$blob.ICloudBlob.Properties.CacheControl = "max-age=3600"

# Send the update to the cloud
$blob.ICloudBlob.SetProperties()

提示

您也可以使用 PowerShell 來管理內容傳遞網路設定檔和端點

使用 .NET 設定 Cache-Control 標頭

若要使用 .NET 程式碼指定 Blob 的 Cache-Control 標頭,請使用適用於 .NET 的 Azure 儲存體用戶端程式庫,來設定 BlobHttpHeaders.CacheControl 屬性。

例如:

    class Program
    {
        const string containerName = "<container name>";
        const string blobName = "<blob name>";
        const string connectionString = "<storage connection string>";
        static void Main()
        {
            // Retrieve storage account information from connection string
            BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

            // Create a blob client for interacting with the blob service.
            BlobClient blob = container.GetBlobClient(blobName);

            // Set the CacheControl property to expire in 1 hour (3600 seconds)
            blob.SetHttpHeaders(new BlobHttpHeaders {CacheControl = "max-age=3600" });
        }
    }

提示

適用於 .NET 的 Azure Blob 儲存體範例中另外還提供了更多 .NET 程式碼範例。

使用其他方法設定 Cache-Control 標頭

Azure 儲存體總管

透過 Azure 儲存體總管,您可以檢視和編輯您的 Blob 儲存體資源,包括如 CacheControl 屬性的屬性。

若要使用 Azure 儲存體總管更新 blob 的 CacheControl 屬性:

  1. 選取 blob,然後從捷徑功能表選取 [屬性]
  2. 向下捲動至 CacheControl 屬性。
  3. 輸入值,然後選取 [儲存]

Azure 儲存體總管屬性

Azure CLI

您可以透過 Azure CLI 以從命令列管理 Azure Blob 資源。 若要在使用 Azure CLI 上傳 Blob 時設定 Cache-Control 標頭,請使用 -p 參數來設定 cacheControl 屬性。 下列範例顯示如何將 TTL 設定為一小時 (3600 秒):

azure storage blob upload -c <connectionstring> -p cacheControl="max-age=3600" .\<blob name> <container name> <blob name>

Azure 儲存體服務 REST API

您可以使用 Azure 儲存體服務 REST API,在要求上使用下列作業來明確設定 x-ms-blob-cache-control 屬性:

測試 Cache-Control 標頭

您可以輕鬆地驗證 Blob 的 TTL 設定。 使用瀏覽器的開發人員工具,測試 blob 是否包含 Cache-Control 的回應標頭。 您也可以使用 Wget \(英文\)、Postman \(英文\) 或 Fiddler \(英文\) 之類的工具來檢查回應標頭。

後續步驟