代码之家  ›  专栏  ›  技术社区  ›  AlexB

Azure Powershell-如何使用“只写”共享访问签名(SAS)将文件上载到Blob存储?

  •  0
  • AlexB  · 技术社区  · 7 年前

    我已经试了一段时间了。这是我的Powershell:

    $storSas = "sas-generated-with-windows-storage-explorer"
    $StorageAccountName = "storageacc"
    $containerName = "some-cont-name"
    $clientContext = New-AzureStorageContext -SasToken $storSAS -StorageAccountName $StorageAccountName
    
    # upload a file
    Set-AzureStorageBlobContent -File "F:\somefile" `
      -Container $containerName `
      -Blob "somefile" `
      -Context $ClientContext 
    

    quest无权使用此权限执行此操作。

    我的策略具有写入和列表权限,为什么会出现此错误?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Wei Wei -Microsoft    7 年前

    1. 请使用来自的最新Azure Powershell https://github.com/Azure/azure-powershell/releases (当前为6.9.0)

    2. 如果您需要在没有读取权限的情况下使用SAS上载blob,则需要添加 -Force Set-AzureStorageBlobContent cmdlet。这是因为默认情况下,我们将检查dest blob是否存在(需要读取权限),并提醒用户weather覆盖dest blob是否存在。

    $sas = New-AzureStorageBlobSASToken -container $containerName -Blob $blobname -Permission w -Context $ctxkey $ctxsas = New-AzureStorageContext -StorageAccountName $StorageAccountName -SasToken $sas $a = Set-AzureStorageBlobContent -File $localSrcFile -Container $containerName -Blob $blobname -Force -Context $ctxsas

    除此之外,如果您使用最新版本的Azure Powershell,Get-AzureStorageContainer也可以与SAS一起使用。(无论如何,无法获取容器ACL,因为需要密钥权限)

    推荐文章