Предположим, что вы хотите получить URL-адрес большого двоичного объекта, а список заблокированных не подтвержден. Если да, вы можете использовать метод make_blob_url для его реализации, это может привести к получению URL-адреса блоба, даже если блоб не существует.
Ниже приведен мой тестовый код, во-первых, я создаю block_list, но незафиксированный, это может получить URL-адрес большого двоичного объекта, однако даже если вы можете получить URL-адрес большого двоичного объекта, этот URL-адрес недоступен, поскольку большой двоичный объект не существует.
Я использую azure-storage-blob==2.1.0
.
from azure.storage.blob import BlockBlobService, PublicAccess,ContentSettings,BlockListType,BlobBlock
connect_str ='connection string'
block_blob_service = BlockBlobService(connection_string=connect_str)
containername='test'
blobname='abc-test.txt'
block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'AAA',block_id=1)
block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'BBB',block_id=2)
block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'CCC',block_id=3)
block_list=block_blob_service.get_block_list(container_name=containername,blob_name=blobname,block_list_type=BlockListType.All)
uncommitted = len(block_list.uncommitted_blocks)
print(uncommitted)
exists=block_blob_service.exists(container_name=containername,blob_name=blobname)
print(exists)
blob_url=block_blob_service.make_blob_url(container_name=containername,blob_name=blobname)
print(blob_url)
block_list = [BlobBlock(id='1'), BlobBlock(id='2'), BlobBlock(id='3')]
block_blob_service.put_block_list(container_name=containername,blob_name=blobname,block_list=block_list)
exists=block_blob_service.exists(container_name=containername,blob_name=blobname)
print(exists)
blob_url=block_blob_service.make_blob_url(container_name=containername,blob_name=blobname)
print(blob_url)
Надеюсь, это то, что вы хотите, если у вас все еще есть другие проблемы, пожалуйста, дайте мне знать.