чтение файла из хранилища больших двоичных объектов azure в python

#python #azure #azure-blob-storage

Вопрос:

у меня проблема с чтением моего файла в хранилище больших двоичных объектов. В моем файле есть только текст.

Например, я хочу получить из своего файла информацию о своем файле

 {......}
 

Муравей, я хочу войти в переменную, как это s = {......}

Я загружаю в хранилище blob-объектов строку, подобную этой.

     blob = BlobClient.from_connection_string(conn_str="DefaultEndpointsProtocol=https;AccountName=dasdasdas;AccountKey=sdf sdfds dfds==;EndpointSuffix=core.windows.net", container_name="XXXXXX", blob_name="XXXX.json")
    
    
    store_items = 'swx'
    data = str(store_items)   str(conversation_reference)
    blob.upload_blob(data, overwrite=True)
 

Теперь я хочу получить какую-то ценность и использовать ее.

Я пробую что-то вроде этого

 block_blob_service = BlockBlobService(account_name='XXXXX', account_key='XXXXX XXXXX XXXXX==')

blob2 = block_blob_service.get_blob_to_text('XXXXX', 'XXXXX.json')
print (blob2.content)
 

Но это не работает, это кажется старым кодом.
ошибка

 NameError: name 'BlockBlobService' is not defined
 

это нужно Я использую 4.10 и не могу использовать 2.10, потому что моя программа не будет работать.

Есть идеи, как это решить?

Ответ №1:

Может быть, вы можете попробовать использовать этот код:

 from azure.storage.blob import BlobServiceClient
connection_string=''
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = blob_service_client.get_container_client("<container name>")
blob_client = container_client.get_blob_client("<blob name>")
blobstr = blob_client.download_blob().readall().decode("utf-8") # read blob content as string
 

Пожалуйста, обратитесь к быстрому началу работы: Управление большими двоичными объектами с помощью Python v12 SDK

Комментарии:

1. Это работает, спасибо, но не могли бы вы сказать мне, если капля пуста, я получаю b''

2. С моей стороны уже слишком поздно, я свяжусь с вами завтра.

3. Я провел тест, если капля пуста, вы получите b''

4. может быть, вы знаете, как его удалить?

5. Спасибо, теперь все выглядит хорошо