Основная причина - неправильный тип содержимого.
Как вы уже упоминали, при ручной загрузке файла .html его тип содержимого "text/html
".При использовании Set-AzureStorageBlobContent
оно меняется на "application/octet-stream
".
Решение заключается в том, что при использовании командлета powershell Set-AzureStorageBlobContent
необходимо указать параметр -Properties
, как показано ниже: -Properties @{"ContentType" = "text/html"}
.
Пример кода, подобный приведенному ниже (работает на моей стороне):
$context = New-AzureStorageContext -StorageAccountName "xxx" -StorageAccountKey "xxxxx"
#note that the last "\" is necessary
$path = "D:\temp\1\"
Get-ChildItem -Path $path -File -Recurse | `
%{ if($_.extension -eq ".html") {Set-AzureStorageBlobContent -File $_.FullName -Blob $_.FullName.Replace($path,'') -Container "test-1" -Context $context -Properties @{"ContentType" = "text/html"}} `
else {Set-AzureStorageBlobContent -File $_.FullName -Blob $_.FullName.Replace($path,'') -Container "test-1" -Context $context}}
Приведенный выше код просто меняет content_type файлов с расширением .html на «text / html».Вы можете смело изменять код в соответствии со своими потребностями.