🙆
【Azure Blob Storage】コンテナーにフォルダーをuploadする方法
やること
Azure Blob Storageのコンテナーにフォルダーをuploadする方法をまとめます
流れ
- コンテナーを準備
- Azure portal編
- Azure CLI編
- Python編
コンテナーを準備
- Azure Blob Storage を開く
- 左タブ コンテナー をクリックする
- +コンテナーをクリックする
- コンテナー名を入力し、作成 をクリックする
- コンテナーが作成されたことを確認する
Azure portal編
- uploadするフォルダーをクリックする
- アップロード をクリックする
- ファイルの参照 をクリックする
- フォルダーをドラッグアンドドロップする
- アップロード をクリックする
- フォルダーが上がっていることを確認する
Azure CLI編
- 以下のコマンドでAzureにログインする
az login -t "<tenantID>"
- 以下のコマンドを実行し、フォルダーのファイルをuploadする
az storage blob upload-batch --account-name <StorageAccountName> --source <LocalFolderPath> --destination <ContainerName>
- ファイルがすべて上がったことを確認する
python編
- 以下のコードを実行する
main.py
import os
from azure.storage.blob import BlobServiceClient
def upload_folder_to_blob(container_name, source_folder_path, connection_string):
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = blob_service_client.get_container_client(container_name)
for root, _, files in os.walk(source_folder_path):
for file in files:
file_path = os.path.join(root, file)
relative_path = os.path.relpath(file_path, source_folder_path)
upload_file_to_blob(container_client, file_path, relative_path)
def upload_file_to_blob(container_client, file_path, relative_path):
blob_client = container_client.get_blob_client(relative_path)
print(f"Uploading {relative_path}...")
with open(file_path, "rb") as data:
blob_client.upload_blob(data, overwrite=True)
if __name__ == "__main__":
CONTAINER_NAME = "<container name>"
SOURCE_FOLDER_PATH = "<Folder Path>"
CONNECTION_STRING = "<connection string>"
# Upload folder to blob storage
upload_folder_to_blob(CONTAINER_NAME, SOURCE_FOLDER_PATH, CONNECTION_STRING)
- ファイルがuploadされたことを確認する
Discussion