簡體   English   中英

Python Azure Blob 存儲輸入 Stream 不完整

[英]Python Azure Blob Storage Input Stream Incomplete

我有 azure blob 觸發器 function 讀取 xml 個文件。

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

請注意 function 是使用 vscode 功能創建的

當數據通過 XML 解析器時,我收到一條錯誤消息,指出數據格式錯誤

當我檢查 Azure Insights Logs Azure Function 時,它似乎沒有完全讀取 xml 文件。

XML 文件大約 150KB,大約 4000 行。 抱歉無法舉例,因為它超出了此處的字符限制。

看起來它截斷了文件 output。

有沒有辦法完全讀取 blob 文件?

謝謝

已經晚了,但我仍然會寫,因為它可能會對其他人有所幫助。

還有另一個選項可用於讀取文件,即我們可以創建一個 url 和 SAS 文件,當它被 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 來獲取文件。 我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM