【发布时间】:2020-03-30 21:17:44
【问题描述】:
我想在不共享我的整个存储帐户密钥的情况下授予对我帐户中单个容器的有限访问权限。我在特定于容器的 Azure 存储资源管理器中生成了共享访问签名。
container right-click & generate SAS
example of output from generate SAS
当我尝试使用 blockblobservice 列出文件时,我收到以下错误。使用 get_blob_to_path 时出现同样的错误。
from azure.storage.blob import BlockBlobService, BlobPermissions
sas_container = 'nwe-statements'
sas_token = '?st=2019-12-05T21%3A09%3A12Z&se=2020-01-31T21%3A13%3A00Z&sp=racwdl&sv=2018-03-28&sr=c&sig=YLk2UWxPcqkDl5a8nWtBYcw%3DxWuAsfFI1ch5TwrbAxvk'
example_file = '1470-4126.pdf'
def sas_list():
blob_service = BlockBlobService(account_name='pretend',sas_token=sas_token)
blob_list = blob_service.list_blobs(sas_container)
print(blob_list)
Traceback(最近一次调用最后一次): 文件“/home/brett/jetco/django_jetco/O365/nwe_statements/blob_connect.py”,第 24 行,在 sas_list() 文件“/home/brett/jetco/django_jetco/O365/nwe_statements/blob_connect.py”,第 11 行,在 sas_list blob_list = blob_service.list_blobs(sas_container) 文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/blob/baseblobservice.py”,第 1214 行,在 list_blobs resp = self._list_blobs(*args, **kwargs) _list_blobs 中的文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/blob/baseblobservice.py”,第 1285 行 return self._perform_request(request, _convert_xml_to_blob_list, operation_context=_context) _perform_request 中的文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/storageclient.py”,第 280 行 提高前任 _perform_request 中的文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/storageclient.py”,第 248 行 提高前任 _perform_request 中的文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/storageclient.py”,第 235 行 _http_error_handler(HTTPError(response.status, response.message, response.headers, response.body)) _http_error_handler 中的文件“/home/brett/jetco/env/lib/python3.6/site-packages/azure/storage/_error.py”,第 114 行 引发 AzureHttpError(消息,http_error.status) azure.common.AzureHttpError:服务器无法对请求进行身份验证。确保 Authorization 标头的值正确形成,包括签名。
AuthenticationFailedServer 未能验证请求。确保 Authorization 标头的值正确形成,包括签名。 请求ID:2d2370dc-f01e-0028-0fb3-ab47c9000000 时间:2019-12-05T21:33:23.3062345Z签名不匹配。使用的签名字符串是 racwdl2020-01-31T21:13:00Z /blob/pretend/nwe-statements
2018-03-28
【问题讨论】: