🐡
Azure Blob Storageのコンテナーのデータをpythonを使ってExportする
やること
Azure Blob Storageのコンテナーのデータをpythonを使ってExportする
そもそも
Azure Blob Storageのコンテナーのデータは、Azure Storage Explorerを使えばExportできます。pythonで自動化できないかなと思ったので検証しました。
code
from azure.storage.blob import BlobServiceClient
import os
# BlobServiceClient を初期化
connection_string = "接続文字列"
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
# ストレージアカウント内の全てのコンテナーをリスト
all_containers = blob_service_client.list_containers()
for container in all_containers:
container_name = container.name
print(f"コンテナー '{container_name}' のBlobをダウンロード中...")
# ローカルにコンテナー名のディレクトリを作成
local_container_path = os.path.join("./", container_name)
os.makedirs(local_container_path, exist_ok=True)
# コンテナー内のBlobをリストし、ダウンロード
container_client = blob_service_client.get_container_client(container)
for blob in container_client.list_blobs():
blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob.name)
download_file_path = os.path.join(local_container_path, blob.name)
# ディレクトリ構造を維持するために必要なディレクトリを作成
os.makedirs(os.path.dirname(download_file_path), exist_ok=True)
with open(download_file_path, "wb") as download_file:
download_file.write(blob_client.download_blob().readall())
print(f"コンテナー '{container_name}' のダウンロード完了")
print("全てのコンテナーのダウンロードが完了しました")
Discussion