Как решить "azure.common.AzureHttpError: Этот запрос не авторизован для выполнения этой операции. ErrorCode: AuthorizationFailure" - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь получить доступ к списку контейнеров в учетной записи хранения в моем Azure через библиотеки Python Azure (BlockBlobService)

Я использовал токен sas, сгенерированный программой, а также вручную через портал Azure, чтобыполучить доступ к хранилищу 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: Этот запрос не авторизован для выполнения этой операции.ErrorCode: AuthorizationFailure AuthorizationFailure Этот запрос не авторизован для выполнения этой операции.RequestId: 5670884b-f01e-0021-52cb-6fc574000000 Время: 2019-09-20T15: 52: 27.4366679Z

Процесс завершен с кодом выхода 1

1 Ответ

1 голос
/ 20 сентября 2019

Причина, по которой вы получаете эту ошибку, заключается в том, что вы определили разрешение Read в своей подписи общего доступа (SAS) и пытаетесь составить список больших двоичных объектов.

Для просмотра больших двоичных объектов вам потребуетсяList разрешение.

Попробуйте изменить свой SAS, включив в него разрешение List, и вы не получите эту ошибку.

...