🙆

【Azure Blob Storage】コンテナーにフォルダーをuploadする方法

2024/07/16に公開

やること

Azure Blob Storageのコンテナーにフォルダーをuploadする方法をまとめます

流れ

  • コンテナーを準備
  • Azure portal編
  • Azure CLI編
  • Python編

コンテナーを準備

  1. Azure Blob Storage を開く
  2. 左タブ コンテナー をクリックする
  3. +コンテナーをクリックする
  4. コンテナー名を入力し、作成 をクリックする
  5. コンテナーが作成されたことを確認する

Azure portal編

  1. uploadするフォルダーをクリックする
  2. アップロード をクリックする
  3. ファイルの参照 をクリックする
  4. フォルダーをドラッグアンドドロップする
  5. アップロード をクリックする
  6. フォルダーが上がっていることを確認する

Azure CLI編

  1. 以下のコマンドでAzureにログインする
az login -t "<tenantID>"
  1. 以下のコマンドを実行し、フォルダーのファイルをuploadする
az storage blob upload-batch --account-name <StorageAccountName> --source <LocalFolderPath> --destination <ContainerName>  
  1. ファイルがすべて上がったことを確認する

python編

  1. 以下のコードを実行する
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)  
  1. ファイルがuploadされたことを確認する
ヘッドウォータース

Discussion