この記事の目的
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(key_name).readall())
print(info)
main_logic()
👇関連記事
👇参考URL
- クイック スタート:Azure CLI を使用して BLOB を作成、ダウンロード、一覧表示する
- Azure CLI の概要
- BLOB データにアクセスするための Azure ロールを割り当てる
- az storage blob
- az storage azcopy blob
- クイック スタート: Python 用 Azure Blob Storage クライアント ライブラリ
- BlobServiceClient
- BlobClient
[keywords]
Azure Blob Python CLI
Azure Blob Storage CLI及びPython経由ファイルアップロード/ダウンロード操作手順
更新日:2023/11/19