AzCopy を使用して Azure BLOB ストレージから BLOB をダウンロードする
AzCopy v10 コマンド ライン ユーティリティを使用して、BLOB ストレージから BLOB やディレクトリをダウンロードできます。
ファイルのアップロード、BLOB ストレージとの同期、アカウント間での BLOB のコピーなどの他の種類のタスクの例を確認するには、この記事の「次のステップ」のセクションに示されているリンクを参照してください。
はじめに
AzCopy のダウンロード方法と、ストレージ サービスに認証資格情報を与える方法については、AzCopy の作業開始に関するページをご覧ください。
Note
この記事の例では、Microsoft Entra ID を使って認可の資格情報を指定していることを前提としています。
SAS トークンを使用して BLOB データへのアクセスを承認する場合、各 AzCopy コマンドのリソース URL の先頭にそのトークンを追加できます。 (例: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
)。
BLOB をダウンロードする
azcopy copy コマンドを使用して BLOB をダウンロードします。
ヒント
この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' '<local-file-path>'
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'
例 (Data Lake Storage エンドポイント)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'
Note
BLOB の Content-md5
プロパティ値にハッシュが含まれる場合、AzCopy では、ダウンロードするデータの MD5 ハッシュが計算され、BLOB の Content-md5
プロパティに格納されている MD5 ハッシュが計算されたハッシュに一致するかどうかが検証されます。 これらの値が一致しない場合、--check-md5=NoCheck
または --check-md5=LogOnly
をコピー コマンドに追加してこの動作をオーバーライドしない限り、ダウンロードは失敗します。
ディレクトリをダウンロードする
azcopy copy コマンドを使用してディレクトリをダウンロードします。
ヒント
この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' '<local-directory-path>' --recursive
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory' --recursive
例 (Data Lake Storage エンドポイント)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory' --recursive
この例では、ダウンロードされたすべての BLOB を含む C:\myDirectory\myBlobDirectory
という名前のディレクトリが生成されます。
ディレクトリの内容をダウンロードする
ワイルドカード記号 (*) を使用することで、ディレクトリ自体をコピーせずにディレクトリの内容をダウンロードできます。
ヒント
この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。
Note
現在のところ、このシナリオは、階層型名前空間のないアカウントでのみサポートされています。
構文
azcopy copy 'https://<storage-account-name>.blob.core.windows.net/<container-name>/*' '<local-directory-path>/'
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*' 'C:\myDirectory'
すべてのサブディレクトリ内のファイルをダウンロードするには、--recursive
フラグを追加します。
特定の BLOB をダウンロードする
完全なファイル名かワイルドカード文字 (*) による部分的な名前を使用して、または日付と時刻を使用して、特定の BLOB をダウンロードできます。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。
複数の完全な BLOB 名を指定する
azcopy copy コマンドを --include-path
オプションと共に使用します。 個々の BLOB 名は、セミコロン (;
) を使用して区切ります。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-path <semicolon-separated-file-list>
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt' --recursive
例 (Data Lake Storage エンドポイント)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt'--recursive
この例では、AzCopy によって https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos
ディレクトリと https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/documents/myFile.txt
ファイルが転送されます。 https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos
ディレクトリ内のすべての BLOB を転送するには、--recursive
オプションを含めます。
--exclude-path
オプションを使用して BLOB を除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。
ワイルドカード文字を使用する
azcopy copy コマンドを --include-pattern
オプションと共に使用します。 ワイルドカード文字を含む名前の一部を指定します。 セミコロン (;
) で名前を区切ります。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*'
例 (階層型名前空間)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*'
--exclude-pattern
オプションを使用して BLOB を除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。
--include-pattern
および --exclude-pattern
オプションは BLOB 名にのみ適用され、パスには適用されません。 ディレクトリ ツリー内に存在するすべてのテキスト ファイル (BLOB) をコピーする場合は、-recursive
オプションを使用してディレクトリ ツリー全体を取得した後、-include-pattern
を使用し、*.txt
を指定してすべてのテキスト ファイルを取得します。
ある日付と時刻の前後に変更された BLOB をダウンロードする
azcopy copy コマンドを --include-before
または --include-after
オプションと共に使用します。 日付と時刻を ISO-8601 形式で指定します (例: 2020-08-19T15:04:00Z
)。
次の例では、指定した日付以降に変更されたファイルをダウンロードします。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>/*' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z'
例 (Data Lake Storage エンドポイント)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z'
詳細なリファレンスについては、azcopy copy に関するリファレンス ドキュメントを参照してください。
前のバージョンの BLOB をダウンロードする
BLOB のバージョン管理を有効にした場合、BLOB の以前のバージョンを 1 つでも複数でもダウンロードできます。
まず、バージョン ID の一覧が含まれるテキスト ファイルを作成します。 各バージョン ID は別個の行に表示する必要があります。 次に例を示します。
2020-08-17T05:50:34.2199403Z
2020-08-17T05:50:34.5041365Z
2020-08-17T05:50:36.7607103Z
次に、azcopy copy コマンドを --list-of-versions
オプションと共に使用します。 バージョンの一覧を含むテキスト ファイルの場所を指定します (例: D:\\list-of-versions.txt
)。
BLOB のスナップショットをダウンロードする
BLOB スナップショットの DateTime 値を参照することによって、BLOB スナップショットをダウンロードできます。
構文
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>?sharesnapshot=<DateTime-of-snapshot>' '<local-file-path>'
例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'
例 (Data Lake Storage エンドポイント)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'
Note
SAS トークンを使用して BLOB データへのアクセスを認可している場合は、SAS トークンの後にスナップショット DateTime を追加します。 (例: 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z'
)。
オプションのフラグを使用してダウンロードする
オプションのフラグを使用して、ダウンロード操作を調整できます。 以下にいくつか例を示します。
シナリオ | フラグ |
---|---|
自動的にファイルを圧縮解除します。 | --decompress |
コピーに関連するログ エントリの詳細レベルを指定します。 | --log-level=[WARNING|ERROR|INFO|NONE] |
コピー先で競合するファイルと BLOB を上書きするかどうか、どのように上書きするのかを指定します。 | --overwrite=[true|false|ifSourceNewer|prompt] |
完全な一覧については、オプションを参照してください。
静的 Web サイトのコンテンツをダウンロードする
AzCopy では、https://mystorageaccount.z12.web.core.windows.net
などのパブリック エンドポイント経由で Azure Storage にホストされている静的 Web サイトのデータをダウンロードすることはサポートされていません。 代わりに、BLOB エンドポイントで $web
コンテナーを使用して、静的 Web サイトからファイルをダウンロードします。
azcopy copy 'https://mystorageaccount.blob.core.windows.net/$web/*' 'C:\myDirectory' --recursive
次のステップ
他の例については、次の記事を参照してください。
- 例:アップロード
- 例:アカウント間でのコピー
- 例:同期
- 例:Amazon S3 バケット
- 例: Google Cloud Storage
- 例:Azure Files
- チュートリアル:AzCopy を使用したオンプレミス データのクラウド ストレージへの移行
設定の構成、パフォーマンスの最適化、および問題のトラブルシューティングを行うには、次の記事を参照してください。