Azure CLI(S3)

https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-cli
https://markheath.net/post/manage-blob-storage-azure-cli


ストレージサービスの種類
1. Azure Blob Storage
2. Azure Files
3. Azure Queue Storage
4. Azure Table Storage

前作業

az login --use-device-code
az account show


az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults

 


az group create \
--name rg01 \
--location japaneast


az group list


---------------------------------------------


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

az storage account create \
--resource-group rg01 \
--name st123 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS


az storage account list \
--resource-group rg01

az storage account show \
--resource-group rg01 \
--name st123


ストレージアカウントの削除

az storage account delete \
--resource-group rg01 \
--name st123 \
--yes

 

---------------------------------------------
コンテナーの作成

connectionString=$(az storage account show-connection-string \
--resource-group rg01 \
--name st123 \
--query connectionString \
--output tsv )

echo $connectionString

 

az storage container create \
--name container01 \
--account-name st123 \
--public-access off \
--connection-string $connectionString

 

az storage container list \
--account-name st123 \
--connection-string $connectionString


az storage container show \
--name container01 \
--account-name st123 \
--connection-string $connectionString


コンテナーの削除

az storage container delete \
--name container01 \
--account-name st123 \
--connection-string $connectionString


---------------------------------------------


ディレクトリ作成

az storage blob directory create \
--container-name container01 \
--directory-path XXX/YYY \
--account-name st123 \
--connection-string $connectionString


ディレクトリの削除

az storage blob directory delete \
--container-name container01 \
--directory-path XXX/YYY \
--account-name st123 \
--recursive \
--connection-string $connectionString

 

---------------------------------------------
BLOBをアップロードする


echo test > test.txt


az storage blob upload \
--account-name st123 \
--container-name container01 \
--name test.txt \
--file test.txt \
--connection-string $connectionString

az storage blob upload \
--account-name st123 \
--container-name container01 \
--name AAA/test.txt \
--file test.txt \
--connection-string $connectionString

az storage blob upload \
--account-name st123 \
--container-name container01 \
--name XXX/test.txt \
--file test.txt \
--connection-string $connectionString

az storage blob upload \
--account-name st123 \
--container-name container01 \
--name hoge/fuga/test.txt \
--file test.txt \
--connection-string $connectionString


BLOBを一覧表示する

az storage blob list \
--account-name st123 \
--container-name container01 \
--output table \
--connection-string $connectionString

 

BLOBをダウンロードする

az storage blob download \
--account-name st123 \
--container-name container01 \
--name hoge/fuga/test.txt \
--file test2.txt \
--connection-string $connectionString

 

BLOBを削除する

az storage blob delete \
--account-name st123 \
--container-name container01 \
--name test.txt \
--delete-snapshots include \
--connection-string $connectionString

az storage blob delete \
--account-name st123 \
--container-name container01 \
--name hoge/fuga/test.txt \
--delete-snapshots include \
--connection-string $connectionString

 


BLOBを移動する

az storage blob move \
--account-name st123 \
--container-name container01 \
--source-blob AAA/test.txt \
--destination-blob test.txt \
--connection-string $connectionString


※移動時は移動先のディレクトリをあらかじめ作成必要

※暗黙作成されたディレクトリは配下のBLOB消失時、同時に消失する

az storage blob move \
--account-name st123 \
--container-name container01 \
--source-blob XXX/test.txt \
--destination-blob test2.txt \
--connection-string $connectionString

---------------------------------------------


クリーンアップ


az group list

az group delete \
--name rg01 \
--yes