仅使用Python而不是整个blob检索部分Azure文本blob

时间:2018-05-25 01:11:07

标签: python azure visual-studio-2017 azure-blob-storage

这是我的应用程序用于检索Azure文本blob的Python函数。 gen_blob_to_text功能的Here is the documentation(当您点击页面时,按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中检查它,我会得到以下不完整的blob文本,如{ {1}}

enter image description here

我的问题是:如何获取全文blob而不是其中的一部分?我做错了什么?

2 个答案:

答案 0 :(得分:3)

我不能在我身边重现你的问题。我通过以下代码成功获得blob内容:

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)

我尝试在Text Visualizer中调试它。如果我正确地拖动窗口,它可以完全显示。

enter image description here

希望它对你有所帮助。

答案 1 :(得分:1)

似乎代码工作正常,但Visual Studio的Text Visualizer是截断的原因,如this Stack Overflow answer中所述。我可以确认这一点,因为如果我将blob的内容打印到控制台,则会打印所有HTML。

似乎Visual Studio的某些版本执行截断,而其他版本则没有(正如Jay的回答中所见,他的Visual Studio Text Visualizer显示了blob的全部内容;同时在我的文本展示台,我只看到一个部分字符串)。