管理 Azure 內容傳遞網路中 Azure Blob 儲存體的期限
重要
Azure CDN Standard from Microsoft (classic) 將於 2027 年 9 月 30 日淘汰。 為了避免任何服務中斷,請務必在 2027 年 9 月 30 日之前,移轉您的 Azure CDN Standard from Microsoft (classic) 設定檔至 Azure Front Door Standard 或 Premium 層。 如需詳細資訊,請參閱 Azure CDN Standard from Microsoft (classic) 淘汰。
來自 Edgio 的 Azure CDN 將於 2025 年 1 月 15 日淘汰。 您必須在此 日期之前將工作負載 移轉至 Azure Front Door,以避免服務中斷。 如需詳細資訊,請參閱來自Edgio的 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 的 Microsoft Azure 內容傳遞網路進階版」設定檔,您必須使用 [管理] 入口網站中的 Azure 內容傳遞網路規則引擎來執行類似功能。
瀏覽至 CDN 快取規則頁面:
在 Azure 入口網站中,選取內容傳遞網路設定檔,然後選取 blob 的端點。
在左窗格的 [設定] 下方,選取 [快取規則]。
[快取規則] 頁面隨即出現。
使用全域快取規則設定 blob 儲存體服務的 Cache-Control 標頭:
在 [全域快取規則] 下方,將 [查詢字串快取行為] 設定為 [忽略查詢字串],並將 [快取行為] 設定為 [覆寫]。
在 [快取到期期間] 的 [秒鐘] 方塊中輸入 3600 或在 [小時] 方塊中輸入 1。
這個全域快取規則會設定一小時的快取期間,並影響針對端點的所有要求。 它會覆寫由端點指定之原始伺服器所傳送的任何
Cache-Control
或Expires
HTTP 標頭。選取 [儲存]。
使用自訂快取規則設定 blob 檔案的 Cache-Control 標頭:
在 [自訂快取規則] 下,建立兩個比對條件:
A. 在第一個比對條件,將 [比對條件] 設為 [路徑],並在 [符合值] 輸入
/blobcontainer1/*
。 將 [快取行為] 設定為 [覆寫],並在 [時數] 方塊中輸入 4。B. 在第二個比對條件,將 [比對條件] 設為 [路徑],並在 [符合值] 輸入
/blobcontainer1/blob1.txt
。 將 [快取行為] 設定為 [覆寫],並在 [時數] 方塊中輸入 2。第一個自訂快取規則會替您的端點指定之來源伺服器上
/blobcontainer1
資料夾中的所有 blob 檔案,設定四個小時的快取期間。 第二個規則只會針對blob1.txt
blob 檔案覆寫第一個規則,為其設定兩個小時的快取期間。選取 [儲存]。
使用 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 屬性:
- 選取 blob,然後從捷徑功能表選取 [屬性]。
- 向下捲動至 CacheControl 屬性。
- 輸入值,然後選取 [儲存]。
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 屬性:
- Put Blob \(英文\)
- 放置區塊清單
- Set Blob Properties \(英文\)
測試 Cache-Control 標頭
您可以輕鬆地驗證 Blob 的 TTL 設定。 使用瀏覽器的開發人員工具,測試 blob 是否包含 Cache-Control
的回應標頭。 您也可以使用 Wget 或 Fiddler 之類的工具來檢查回應標頭。