Python Скрипт для возврата URI файла BLOB-объекта - PullRequest
0 голосов
/ 22 апреля 2020

Я ищу помощь со сценарием для запуска в Python, который будет обращаться к существующему большому двоичному объекту в Azure и возвращать весь URI одного файла, который будет в этом большом двоичном объекте.

Я пробовал несколько вещей, но они либо слишком стары для текущих библиотек, либо не подключаются при запуске.

Я новичок, поэтому любая помощь, разбудившая меня в этом, была бы очень признательна. Это то, что я пытался, но я уверен, что все это неправильно

import os, uuid
import azure.storage.blob

 self.blob_type = _BlobTypes.BlockBlob
    super(BlockBlobService, self).test(
    account_name=Account_Name,
    account_key='Account key',
    sas_token=None, 
    is_emulated=False, 
    protocol='https', 
    endpoint_suffix='core.windows.net', 
    custom_domain=None, 
    request_session=None, 
    connection_string=None, 
    socket_timeout=None, 
    token_credential=None)
get_block_list(
    ContainerName,
    BlobName,
    snapshot=None,
    block_list_type=None,
    lease_id=None,
    timeout=None)

1 Ответ

1 голос
/ 22 апреля 2020

Предположим, что вы хотите получить 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)

enter image description here

Надеюсь, это то, что вы хотите, если у вас все еще есть другие проблемы, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...