我很难使用Blob SAS令牌通过Powershell将文件写入Azure中的Blob。使用SAS令牌上传Blob内容
我使用生成的SAS标记的代码是:如果我使用这个浏览器它的正常工作和下载文件https://name.blob.core.windows.net/container/test.json?sv=2015-04-05&sr=b&sig=abc123&se=2017-03-07T12%3A58%3A52Z&sp=rw
:
$storageContext = Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageName
$token = New-AzureStorageBlobSASToken -Container $conName -Context $storageContext.Context -Blob $blobName -ExpiryTime $expiry -Permission rw -FullUri
这产生预期令牌如预期。但是,我无法使用它来上传文件。每当我尝试我收到一个(403)禁止。我使用上传的代码是:
$accountContext = New-AzureStorageContext -SasToken $sasToken
Get-AzureStorageContainer -Context $accountContext.Context | Set-AzureStorageBlobContent -File $blobFile
我已经成功地使用了类似这样的制作到Add-AzureRmAccount
调用验证后,BLOB内容设置的方法。
我也试过使用容器SAS令牌,但我一直得到403错误。
该令牌适用于阅读的事实导致我相信我错过了我的Powershell脚本中的任何东西 - 任何人都可以了解这是什么?
我证实,创造一个'一滴SAS'当调用'GET-AzureStorageContainer'被抛出403。我改变了我的代码,用rwl创建一个'Container SAS'并直接调用'Set-AzureStorageBlobContent',但仍然得到了403. – Fermin
你能用你正在使用的最新代码更新你的问题吗?谢谢。 –
我已解决该问题。你说的是工作,我在创建SAS令牌时使用了'-FullUri'标志。删除这个标志只给了我现在允许我上传blob的令牌的查询字符串部分。谢谢。 – Fermin