Aktivera Cachning på dina Azure Storage Blobs

Azure Blob Storage kan användas för att publicera filer direkt till webben. Faktiskt så använder den här websajten Azure Blog Storage för att publicera bilder och andra resurser. Varje objekt får en URL för direkt åtkomst från webbrowser. Dock är det bra för prestanda och god sed att sätta upp cachning på bilder och webresurser. Här skall jag beskriva hur.

Genom att ställa in Public access level på din Storage Container till "Blob", så blir dina blobbar åtkomliga för alla genom deras URL:er. Du kan länka till dem och använda dem från vilken website som helst.

Azure Storage Container Access Level

Tyvärr så ger dig inte Azure Portalen åtkomst till cachningsinställningarna för dina blobs. De syns inte under Blob Properties.

Azure Storage Blob overview

Som tur är så är det enkelt att köra scripts i Azure Portalen.

Använda Cloud Shell för att ställa in Blob Caching

Azure Cloud Shell låter dig enkelt köra PowerShell- eller Bash-script inifrån Azure Portal. Öppna den och välj Powershell-läge.

Azure Portal Cloud Shell

Kopiera därefter scriptet nedan till en texteditor. Uppdatera inställningarna och klistra in i Cloud Shell. max-age mäts i sekunder. För en komplett beskrivning av cachecontrol inställningar, se här.

 1$resourcegroup = "your resource group"
 2$account = "your storage account"
 3$container = "your container"
 4$cachecontrol = "public,max-age=259200" # 3 days
 5
 6Set-AzCurrentStorageAccount -ResourceGroupName $resourcegroup -Name $account
 7$blobnames = (Get-AzStorageBlob -Container $container).Name
 8
 9Foreach ($blobname in $blobnames)
10{
11  Write-Host $blob.Name
12  $blob = Get-AzStorageBlob -Container $container -Blob $blobname
13  $blob.ICloudBlob.Properties.CacheControl = $cachecontrol
14  $blob.ICloudBlob.SetProperties()
15}

Du kan också visa cacheinställningarna på liknande sätt:

 1$resourcegroup = "your resource group"
 2$account = "your storage account"
 3$container = "your container"
 4
 5Set-AzCurrentStorageAccount -ResourceGroupName $resourcegroup -Name $account
 6$blobnames = (Get-AzStorageBlob -Container $container).Name
 7
 8Foreach ($blobname in $blobnames)
 9{
10  $blob = Get-AzStorageBlob -Container $container -Blob $blobname
11  Write-Host $blob.Name $blob.ICloudBlob.Properties.CacheControl
12}
Testning

Du skall nu kunna testa cachningen från valfri web browser:

Web Browser view caching

Lycka till!

Relaterade Artiklar