使用Set-AzureStorageBlobContent或ConvertTo-Json cmdlet将文件上传到Azure存储Blob时,可以指定编码类型吗?

时间:2018-11-09 00:44:35

标签: json azure blob azure-powershell azure-storage-account

我有一个PowerShell脚本,可下载存储在Azure存储帐户blob中的JSON文件。该文件采用UTF-8编码。然后,脚本从JSON读取,进行更改,创建具有相同名称的新JSON文件,然后使用Set-AzureStorageBlobContent cmdlet将其上传回存储帐户。但是,所有使用该JSON文件的应用程序都停止工作。经过数小时的故障排除,我注意到当它将新的JSON上传回存储容器(替换现有的JSON)时,它会以UTF-16编码上传JSON。

Set-AzureStorageBlobContent cmdlet中是否有一个参数可以在其中指定编码?我查看了官方文档,但找不到答案。

在上传新的JSON之前,所有值都存储在一个变量中,并且实际上我使用cmdlet ConvertTo-Json生成新的JSON文件。 ConvertTo-Json中是否有一个参数可以指定编码类型?

现在,我用来上传文件的全部是:

$jsonContent | ConvertTo-Json -Depth 4 | Out-File C:\P3\myFile.json

Set-AzureStorageBlobContent -Context $storageContext -Container "myContainer" -File "myFile.JSON"  -Force

请告知!

2 个答案:

答案 0 :(得分:1)

当然可以,请尝试以下命令。

Set-AzureStorageBlobContent -Context $context -Container "111" -File "C:\Users\joyw\Desktop\testjson.json" -Properties @{"ContentEncoding" = "UTF-8"} -Force

enter image description here

捕获Powershell的请求,您会发现x-ms-blob-content-encoding: UTF-8

enter image description here

答案 1 :(得分:0)

找出解决方案:

c

这会将UTF-8编码的JSON文件上传到Blob。