はじめに
背景やAzureのストレージ・コンテナーについての簡単な説明等は、以前書きましたこちらの記事にありますので、見たい方はご参照ください。
本記事では、
- PowerShellでコンテナーからディレクトリ一括でダウンロードする方法
を紹介したいと思います。
また、コンテナーからダウンロードをするということは当然Azureと通信するということなので、皆様の利用プランによって料金も変わってくるかと思います。
この点にはぜひご注意ください。
環境
超簡単にですが、OSはWindows10です。
ディレクトリごとダウンロードする方法
最初に行き当たったのは「AzCopyをダウンロードして、azcopyコマンドを実行する」という方法(Azure Blob Storage にコマンドでファイルをアップロードする )だったのですが、いざ実行してみると、自分の場合はどうしても認証が通らず、ダウンロードすることができませんでした。
これでできる方もいると思いますので、記事をご参考にしてみてください。
ということで、最終的に成功したのは「Azure CLIをインストールして、PowerShellからダウンロードを実行」でしたので、その方法を紹介します。
Azure CLIをインストール
以下microsoftのページで、「最新バージョン」にある「Azure CLI の最新のリリース」からAzure CLIのインストーラーをダウンロードできます。
Windows での Azure CLI のインストール
このインストーラーを起動し、インストールを行います。
インストール方法や、PowerShellでの起動方法などはこちらの記事を参考にしました。
やさしいAzure CLI のインストール
注意するのは、インストール完了後、PowerShellを開く時です。
本記事には『Windows PowerShell を起動します。"管理者として実行する"を選択すると、azコマンドが認識しません。通常の起動を行います。』とあり、私も同様でしたので、管理者ではない通常の起動を行ってください。
PowerShellでaz
とだけ打って実行できれば、インストール成功です。
ディレクトリごとダウンロードする方法
az storage blob directory にあるaz storage blob directory download
のコマンドを使って、適宜コマンドライン引数を設定して実行します。
az storage blob directory download -c コンテナー名 -s コンテナー内のディレクトリパス -d ローカル保存先ディレクトリパス --account-name アカウント名 --account-key キー --recursive
引数 | 説明 |
---|---|
--container (-c) |
コンテナー名。 ストレージアカウントの左ペインから「データストレージ」 -> 「コンテナー」に入ったときに表示されるコンテナー達の名前です。 |
--source-path (-s) |
コンテナー内のディレクトリパス。 上記のコンテナーに入って以降の、ダウンロードしたいディレクトリパスです。 |
--destination-path (-d) |
ローカル保存先ディレクトリパス。 ダウンロードしたデータを保存したいローカル側のディレクトリパスです。 |
--account-name | ストレージアカウント名。 |
--account-key |
キー。 (確認方法は下記参照) |
--recursive | 再帰的に、つまりディレクトリパス直下に直接置かれているファイルだけでなく、その中にディレクトリがあればさらにその深い階層まで含めてダウンロードするための引数です。 |
キー
については、ストレージアカウントの左ペインから「アクセス キー」に入り、「キー」を表示すればコピーできます。
また通信において、私の場合は会社の環境だったのでプロキシの設定が心配でしたが、今回はこれでそのままうまくダウンロードできました。
が、環境によってはプロキシの設定が必要になるかも知れませんのでご注意ください。
参考
ファイルをダウンロードする方法
前回の記事をご参照ください。