我想列出一個容器中的所有 blob,然后最終將每個 blob 內容(每個 blob 存盤一個 csv 檔案)存盤到一個資料框中,看來 blob 服務客戶端是列出所有 blob 的最簡單方法,這是我有的:
#!/usr/bin/env python3
import os
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
from pathlib import Path
from io import StringIO
import pandas as pd
def main():
connect_str = os.environ['AZURE_CONNECT_STR']
container = os.environ['CONTAINER']
print(connect_str "\n")
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
container_client = blob_service_client.get_container_client(container)
blob_list = container_client.list_blobs()
for blob in blob_list:
print("\t" blob.name)
if __name__ == "__main__":
main()
但是,在 blob 存盤客戶端的最新版本中,似乎沒有任何方法可以讓我獲取 blob 的實際內容,我應該使用什么代碼?Azure 的 Python SDK 中還有其他客戶端,但使用這些客戶端獲取容器中 blob 的完整串列似乎很麻煩。
uj5u.com熱心網友回復:
您需要做的是創建一個BlobClient使用 thecontainer_client和 blob 名稱的實體。然后,您可以呼叫download_blob方法來下載 blob。
就像是:
for blob in blob_list:
print("\t" blob.name)
blob_client = container_client.get_blob_client(blob.name)
blob_client.download(...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492646.html
上一篇:角色在不應該的時候不斷下降
下一篇:將EC密鑰匯入KeyVault
