Я бы хотел асинхронно загружать BLOB-объекты, но даже самый первый шаг к списку BLOB-объектов вызывает исключение. Однако перечисление больших двоичных объектов работает, если не асинхронно.
Использование Python 3.7.6 для Windows 10 и установленных Azure пакетов
azure-cli-core==2.2.0
azure-cli-nspkg==3.0.4
azure-cli-telemetry==1.0.4
azure-common==1.1.25
azure-core==1.2.1
azure-graphrbac==0.61.1
azure-mgmt-authorization==0.60.0
azure-mgmt-containerregistry==2.8.0
azure-mgmt-keyvault==2.2.0
azure-mgmt-resource==8.0.1
azure-mgmt-storage==9.0.0
azure-nspkg==3.0.2
azure-storage-blob==12.1.0
Пример кода для воспроизведения проблемы
import asyncio
import azure.storage.blob
from azure.common.client_factory import get_client_from_cli_profile
from azure.storage.blob.aio import ContainerClient
__account_url__ = "put your URL"
__container_name__ = "put your container"
async def main():
client = get_client_from_cli_profile(
ContainerClient,
account_url=__account_url__,
container_name=__container_name__
)
async with client:
blob_list = [b async for b in client.walk_blobs()]
return blob_list
def main_not_aysnc():
client = get_client_from_cli_profile(
azure.storage.blob.ContainerClient,
account_url=__account_url__,
container_name=__container_name__
)
with client:
blob_list = [b for b in client.walk_blobs()]
return blob_list
if __name__ == "__main__":
blob_list = asyncio.run(main())
# blob_list = main_not_aysnc()
for b in blob_list:
print(b)