如何解决“ azure.common.AzureHttpError:该请求无权执行此操作。ErrorCode:AuthorizationFailure”

时间:2019-09-20 16:06:46

标签: python azure azure-storage-blobs azure-blob-storage

我试图通过python azure库(BlockBlobService)访问azure中存储帐户中的容器列表

我使用了通过程序以及通过azure门户手动生成的sas令牌来访问blob存储。但是,出现异常时显示错误。

from azure.storage.blob import (
    BlockBlobService,
    ContainerPermissions,
)

block_blob_service = BlockBlobService(
    account_name='storage_account_name', sas_token= 'sas_token_taken_from_azure/sas_token_generated_through_code')
blobs = block_blob_service.list_blobs(containerName)

#code  used to generate sas token

def get_sas_token():
    blob_service = BlockBlobService(account_name=account_name, account_key=account_key)
    sas_token = blob_service.generate_container_shared_access_signature(container_name,ContainerPermissions.READ, datetime.utcnow() + timedelta(hours=1))
    return sas_token

azure.common.AzureHttpError:该请求无权执行此操作。错误代码:AuthorizationFailure AuthorizationFailure此请求无权执行此操作。 RequestId:5670884b-f01e-0021-52cb-6fc574000000 时间:2019-09-20T15:52:27.4366679Z

以退出代码1完成的过程

1 个答案:

答案 0 :(得分:1)

出现此错误的原因是因为您在共享访问签名(SAS)中定义了Read权限,并且试图列出Blob。

要列出Blob,您需要获得List权限。

请尝试通过更改SAS并使其具有List权限,您将不会收到此错误。