【问题标题】:Python Azure Blob Storage Input Stream IncompletePython Azure Blob 存储输入流不完整
【发布时间】:2022-10-08 12:31:23
【问题描述】:

我有读取 xml 文件的天蓝色 blob 触发器功能。

def main(myblob: func.blob.InputStream):

    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n")
    data = myblob.read()
    logging.info(data)
    data = ET.fromstring(data)


    return

请注意,该函数是使用 vscode 功能创建的

当数据通过 XML 解析器时,我收到数据格式错误的错误消息

当我检查 Azure 函数的 Azure 见解日志时,它似乎没有完全读取 xml 文件。

XML 文件大约 150KB,大约 4000 行。抱歉不能举个例子,因为它超出了这里的字符数限制。

看起来它截断了文件输出。

反正有没有完全读取blob文件?

谢谢

【问题讨论】:

    标签: python azure-functions azure-blob-trigger


    【解决方案1】:

    已经晚了,但我仍然会写,因为它可能会帮助其他人。

    还有另一个选项可用于读取文件,即我们可以使用 SAS 为文件创建一个 url,当它被 blob 触发时,然后您可以使用该 url 从 blob 存储中获取文件。

    这是一个例子:-

    containerSas = generate_container_sas(
        account_name = os.environ['remoteStorageAccountName'],
        account_key = os.environ['remoteStorageAccountKey'],
        container_name = os.environ['remoteStorageInputContainer'],
        permission = ContainerSasPermissions(read=True),
        expiry=datetime.utcnow() + timedelta(hours=1)
    )
    
    url = 'https://'+os.environ['remoteStorageAccountName']+'.blob.core.windows.net/' + blobName + "?" + containerSas
    

    您可以使用 url 来获取文件。我希望这有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-27
      • 2013-11-08
      • 2020-07-23
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      相关资源
      最近更新 更多