Azure Blob儲存更改快取時間

衡子發表於2017-02-08

Azure的Blob儲存可以作為Http的服務來使用。很多客戶已經把Blob作為圖片儲存的服務,這樣稍作程式碼的修改,解決了圖片伺服器頻寬、效能等多種問題。

但同時問題也出現了:在傳統Http的服務中很多meta屬性是可以設定的,但在blob中如何設定。

比如,在Apache中,可以設定靜態內容的快取時間:

如果想把max-age的時間更改的更長,在Apache中,可以修改配置檔案/etc/httpd/conf/httpd.conf

#LoadModule headers_module modules/mod_headers.so

去掉註釋,新增:

header set cache-control "max-age=36000"

再訪問快取就設定成36000了。

但如果圖片是儲存在Azure的blob儲存上,這些屬性如何修改呢?

首先用Blob Explorer開啟Storage Account。Blob Explorer在下面的連結下載:

https://azurestorageexplorer.codeplex.com/

在輸入相應的儲存賬戶的資訊後,可以看到儲存中的內容:

用View開啟其中一個檔案,檢視其屬性:

可以看到Cache Control的屬性,並且是可以更改的。更改這個屬性為public, max-age=2400,點選Update Properties。

通過Chrome開啟這個圖片,再通過F12檢視,已經更改過來了:

如果有大量的圖片資訊需要更改,可以通過PowerShell指令碼的方式進行更改:

 

$sa = Get-AzureRmStorageAccount -ResourceGroupName hwblob -Name hwblob
$blobs = $sa | Get-AzureStorageBlob -Container test
foreach($blob in $blobs){ write-host $blob.ICloudBlob.Properties.CacheControl $blob.ICloudBlob.Properties.CacheControl = "public, max-age=2400" $blob.ICloudBlob.SetProperties() write-host $blob.ICloudBlob.Properties.CacheControl }

 

 

相關文章