我试图通过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完成的过程
答案 0 :(得分:1)
出现此错误的原因是因为您在共享访问签名(SAS)中定义了Read
权限,并且试图列出Blob。
要列出Blob,您需要获得List
权限。
请尝试通过更改SAS并使其具有List
权限,您将不会收到此错误。