我正在尝试在Powershell中编写一个函数,该函数将特定容器中的Blob设置为某种类型,因为它们始终以JwtAccessTokenConverter
类型编写,这会导致下游应用程序出现问题。我已经编写了以下函数,但它返回错误application/octet-stream
我想知道是否有解决办法?我知道可以在Azure Storage Explorer中手动设置该属性,但这是日常任务。
功能:
'ContentType' is a ReadOnly property.
答案 0 :(得分:0)
因此,根据评论中的链接,请尝试使用此解决方案。
Function Set-ContentType {
Param (
[string]$accountName,
[string]$accessKey,
[string]$storageContainer
)
# Connect to blob storage and get blobs
$context = New-AzureStorageContext -StorageAccountName $accountName -StorageAccountKey $accessKey
$blobs = Get-AzureStorageBlob -Container $storageContainer -Context $context -Blob $fileMask
foreach ($blob in $blobs) {
if ($blob.ContentType -eq $genericMIME) {
$blob.Properties.ContentType = $targetMIME
$blob.SetProperties()
}
}
}
答案 1 :(得分:0)
我通过编写一个替代的上传脚本解决了自己的问题,该脚本在编写Blob时定义了ContentType:
Function UploadFile {
Param (
[string]$accountName,
[string]$accessKey
)
$context = New-AzureStorageContext -StorageAccountName $accountName -StorageAccountKey $accessKey
$files = Get-ChildItem $workingDir -Filter $fileMask
foreach ($file in $files) {
Set-AzureStorageBlobContent -File $file.FullName -Container $container -Properties @{"ContentType" = "$targetMIME"} -Context $context -Force
}
}