Получать только частичный текстовый BLOB-объект Azure с помощью Python вместо целого BLOB-объекта - PullRequest
0 голосов
/ 25 мая 2018

Это функция Python, которую мое приложение использует для извлечения текстового BLOB-объекта Azure. Вот документация для функции gen_blob_to_text (когда вы нажимаете на странице, Ctrl + F и ищете имя функции).

def get_text_blob(self, archive_url):
    container, archive_location = paths.extract_url_elements(archive_url)

    blob = None
    try:
        blob = self.blob_service.get_blob_to_text(container_name = container,
                                                  blob_name = archive_location)
        self.logger.debug('Retrieved ' + archive_url)
    except:
        self.logger.error('Failed to retrieve text blob {} {}'.format(archive_url, traceback.format_exc()))

    return blob

После запуска этой функциии получая обратно объект blob (который в моем случае является некоторым содержимым HTML), если я проверяю его в Visual Studio 2017, я получаю следующий неполный текст большого двоичного объекта, как показано ...

enter image description here

Мой вопрос: как я могу получить полный текстовый блоб вместо его части?Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Кажется, что код работал правильно, но текстовый визуализатор Visual Studio стал причиной усечения, как описано в этом ответе переполнения стека .Я могу подтвердить это, потому что, если я печатаю содержимое блоба на консоль, то печатается весь HTML.

Кажется, что некоторые версии Visual Studio выполняют усечение, а другие нет (как видно из ответа Джея).где его текстовый визуализатор Visual Studio показывает все содержимое BLOB-объекта, а в моем текстовом визуализаторе я видел только частичную строку).

0 голосов
/ 25 мая 2018

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

from azure.storage.blob import (
    BlockBlobService
)

accountName = "***"
accountKey = "***"
containerName = "test1"

blobService = BlockBlobService(account_name=accountName, account_key=accountKey)

blobContent = blobService.get_blob_to_text(containerName,"storage.html")

print(blobContent.content)

И я попытался отладить его в текстовом визуализаторе. Его можно полностью отобразить, если правильно перетащить окно.

enter image description here

Надеюсь, это поможет вам.

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