0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

この記事の目的

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

[keywords]
Azure Blob Python CLI

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

更新日:2023/11/19

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?