メインコンテンツまでスキップ

Azure Blob Storage CLI及びPython経由ファイルアップロード/ダウンロード操作手順

この記事の目的

Azure Blob Storageへのファイルアップロード及びAzure Blob Storageからのファイルダウンロードの操作手順を解説します。
操作にはAzure CLI及びAzure Python SDKを利用します。

👇これより先は下記内容を前提とします

CLI 経由 Azure Blob Storage ファイルアップロード/ダウンロード

サブスクリプション設定

az account set --subscription "***-***-***-***-***-***"

リソースグループ作成

az group create^
--name rg_send_receive_sample^
--location japaneast

ストレージ アカウントの作成

az storage account create^
--name sasendreceivesample^
--resource-group rg_send_receive_sample^
--location japaneast^
--sku Standard_ZRS^
--encryption-services blob

サインインユーザのIDを取得

az ad signed-in-user show --query id -o tsv

以下のような出力が得られます。

abcdefg-abcd123-abcdefg-abcdefg

サインインユーザへストレージアカウントへのアクセス権限を付与

az role assignment create^
--role "Storage Blob Data Contributor"^
--assignee "abcdefg-abcd123-abcdefg-abcdefg"^
--scope "/subscriptions/***-***-***-***-***-***/resourceGroups/rg_send_receive_sample/providers/Microsoft.Storage/storageAccounts/sasendreceivesample"

コンテナの作成

az storage container create^
--account-name sasendreceivesample^
--name container01^
--auth-mode login

ファイルアップロード

az storage blob upload^
--account-name sasendreceivesample^
--container-name container01^
--name myfile.txt^
--file myfile.txt^
--auth-mode login

ファイル一覧取得

az storage blob list^
--account-name sasendreceivesample^
--container-name container01^
--output table^
--auth-mode login

ファイルダウンロード

az storage blob download^
--account-name sasendreceivesample^
--container-name container01^
--name myfile.txt^
--file myfile.txt^
--auth-mode login

ファイル一括アップロード

az storage azcopy blob upload^
--container container01^
--account-name sasendreceivesample^
--source "mydir"^
--recursive

ファイル一括ダウンロード

az storage azcopy blob download^
--container container01^
--account-name sasendreceivesample^
--source *^
--destination "c:\tmp"^
--recursive

ファイル一括削除

az storage azcopy blob delete^
--container container01^
--account-name sasendreceivesample^
--recursive

Azure Python SDK 経由 Azure Blob Storage ファイルアップロード/ダウンロード

サービスプリンシパルへストレージアカウントへのアクセス権限を付与 ※サービスプリンシパルについては下記参照
ローカル開発環境でAzure SDK for Pythonを利用するための認証設定

az role assignment create^
--role "Storage Blob Data Contributor"^
--assignee "00000000-0000-0000-0000-000000000000"^
--scope "/subscriptions/***-***-***-***-***-***/resourceGroups/rg_send_receive_sample/providers/Microsoft.Storage/storageAccounts/sasendreceivesample"

モジュールインストール

pip install azure-storage-blob azure-identity

アップロード

import os
import json

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

def main_logic():
info = {
"ID": "aaaaa"
,"PASS": "bbbb"
}

account_url = "https://sasendreceivesample.blob.core.windows.net"
default_credential = DefaultAzureCredential()

# Create the BlobServiceClient object
container_name = "container01"

key_name = 'key01'

blob_service_client = BlobServiceClient(account_url, credential=default_credential)
container_client = blob_service_client.get_container_client(container=container_name)
blob_client = container_client.get_blob_client(key_name)

blob_client.upload_blob(json.dumps(info),overwrite=True)

main_logic()

ダウンロード

import os
import json

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

def main_logic():
account_url = "https://sasendreceivesample.blob.core.windows.net"
default_credential = DefaultAzureCredential()

# Create the BlobServiceClient object
container_name = "container01"

key_name = 'key01'

blob_service_client = BlobServiceClient(account_url, credential=default_credential)
container_client = blob_service_client.get_container_client(container=container_name)
blob_client = container_client.get_blob_client(key_name)

info = json.loads(blob_client.download_blob().readall())
print(info)

main_logic()

👇関連記事

👇参考URL

[keywords]
Azure Blob Python CLI

Azure Blob Storage CLI及びPython経由ファイルアップロード/ダウンロード操作手順

更新日:2023/11/19

ITとソフトウェアの人気オンラインコースHP Directplus -HP公式オンラインストア-