LoginSignup
0
0

ログインせずにローカルのファイルをAzureのStorage accountsにアップロードする

Last updated at Posted at 2022-06-23

「バッチ処理でローカルのファイルをAzureのStorage accountsに上げたい」となったので、その時に使うPowershellスクリプトを作ろうとしたのですが、ログインしてする方法ばかりで困ったので記録用に。
「ログインせずに」したかった理由としては、ログインに使ったアカウントは2段階認証が必要でaz login -u $username -p $passwordが使えなかったからです。

環境

  • OS: Windows

1. Azure CLIをインストール

2. Powershellスクリプトの作成

2-1. Storage accountsにつなげる

「Windows PowerShell ISE」というアプリを開き、「ファイル>新規作成」をします。
開けたら以下のコードを貼り付けます。

$account_name = ''
$account_key = ''
$container_name = ''

これらの変数に値を入れていくために、Storage accountsからkeyとaccount nameを取ってきます。
account_nameには「ストレージアカウント名」の値を、
account_keyには「キー」の値を入れます。
portal-connection-string.png
conainer_nameには「Name」の文字列を入れます。
画像だと「$logs」しかないので、新しく作ってもらうのがいいと思います。
create-container-lrg[1].png

では接続できるかどうかを試してみます。
ファイルの一番最後にコマンドを追加し、上の緑の三角マークをクリックして実行します。

$account_name = ''
$account_key = ''
$container_name = ''

az storage blob list --account-key $account_key --account-name $account_name -c $container_name

空っぽのコンテナであれば空配列が、ファイルが入っていればいろいろ表示されると思います。
表示されれば次へ。

2-2. ファイルをアップロードする

次はファイルをアップロードします。
アップロードするファイルを用意し、以下の変数名に値を入れてください。
file_nameは拡張子さえ同じであればなんでも大丈夫です。

$file_name = ''
$file_path = ''

「C:\Images\Image001.png」に画像ファイルがあるとすると、こんな感じになります。

$file_name = 'Image001.png'
$file_path = 'C:\Images\Image001.png'

ではアップロードするコマンドを貼り付けて実行してみます。

$account_name = ''
$account_key = ''
$container_name = ''

$file_name = ''
$file_path = ''

az storage blob upload --account-key $account_key --account-name $account_name -c $container_name --name $file_name --file $file_path

私の場合は赤い文字で何やら表示されましたが、Account Storageを確認したところ、ちゃんとアップロードできてました。

参考

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