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>')。
コンテナーを作成する
azcopy make コマンドを使用してコンテナーを作成します。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用する場合は、パス引数を単一引用符 ('') ではなく二重引用符 ("") で囲みます。
構文
azcopy make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'
例
azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'
例 (Data Lake Storage エンドポイント)
azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'
詳細なリファレンス ドキュメントについては、「azcopy make」を参照してください。
ファイルをアップロードする
azcopy copy コマンドを使用してファイルをアップロードします。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用する場合は、パス引数を単一引用符 ('') ではなく二重引用符 ("") で囲みます。
構文
azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'
例
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
ファイル パスまたはファイル名の任意の場所で、ワイルドカード記号 (*) を使用してファイルをアップロードすることもできます。 例: 'C:\myDirectory\*.txt'、または C:\my*\*.txt。
ディレクトリをアップロードする
azcopy copy コマンドを使用してディレクトリをアップロードします。
この例では、ディレクトリ (とそのディレクトリ内のすべてのファイル) が BLOB コンテナーにコピーされます。 結果は、同じ名前のコンテナー内のディレクトリになります。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用する場合は、パス引数を単一引用符 ('') ではなく二重引用符 ("") で囲みます。
構文
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive
コンテナー内のディレクトリにコピーするには、コマンド文字列でそのディレクトリの名前を指定します。
例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive
コンテナーに存在しないディレクトリの名前を指定すると、AzCopy によってその名前の新しいディレクトリが作成されます。
ディレクトリの内容をアップロードする
azcopy copy コマンドを使用してディレクトリの内容をアップロードします。 格納しているディレクトリ自体をコピーせずに内容をアップロードするには、ワイルドカード記号 (*) を使用します。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用する場合は、パス引数を単一引用符 ('') ではなく二重引用符 ("") で囲みます。
構文
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'
例
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'
すべてのサブディレクトリ内のファイルをアップロードするには、--recursive フラグを追加します。
特定のファイルをアップロードする
完全なファイル名、ワイルドカード文字 (*) を使用した部分的な名前、または日付と時刻を使用して、特定のファイルをアップロードすることができます。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。
複数の完全なファイル名を指定する
azcopy copy コマンドを --include-path オプションと共に使用します。 セミコロン (;) を使用して、個々のファイル名を区切ります。
構文
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>
例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
この例では、AzCopy によって C:\myDirectory\photos ディレクトリと C:\myDirectory\documents\myFile.txt ファイルが転送されます。
--recursive ディレクトリ内のすべてのファイルを転送するには、C:\myDirectory\photos オプションを含めます。
--exclude-path オプションを使用してファイルを除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。
ワイルドカード文字を使用する
azcopy copy コマンドを --include-pattern オプションと共に使用します。 ワイルドカード文字を含む名前の一部を指定します。 セミコロン (;) で名前を区切ります。
構文
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>
例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
--exclude-pattern オプションを使用してファイルを除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。
--include-pattern オプションと --exclude-pattern オプションは、パスではなくファイル名にのみ適用されます。 ディレクトリ ツリーに存在するテキスト ファイルをすべてコピーする場合は、-recursive オプションを使用してディレクトリ ツリー全体を取得し、次に -include-pattern を使用して *.txt を指定し、すべてのテキスト ファイルを取得します。
ある日時の前後に変更されたファイルをアップロードする
azcopy copy コマンドを --include-before または --include-after オプションと共に使用します。 ISO-8601 形式で日付と時刻を指定します (例: 2020-08-19T15:04:00Z)。
次の例では、指定した日付以降に変更されたファイルをアップロードします。
構文
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' --include-after <Date-Time-in-ISO-8601-format>
例
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
例 (Data Lake Storage エンドポイント)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
詳細なリファレンスについては、azcopy copy に関するリファレンス ドキュメントを参照してください。
インデックス タグを使用してアップロードする
ファイルをアップロードし、BLOB インデックス タグをターゲット BLOB に追加できます。
Microsoft Entra 承認を使用する場合は、 ストレージ BLOB データ所有者 ロールをセキュリティ プリンシパルに割り当てるか、カスタム Azure ロールを使用して Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeAzure リソース プロバイダー操作 にアクセス許可を付与します。 Shared Access Signature (SAS) トークンを使用する場合、トークンは、 t SAS アクセス許可を介して BLOB のタグへのアクセスを提供する必要があります。
タグを追加するには、URL でエンコードされたキーと値のペアで --blob-tags オプションを使用します。
たとえば、キー my tag と値 my tag valueを追加するには、宛先パラメーターに --blob-tags='my%20tag=my%20tag%20value' を含めます。
複数のインデックス タグをアンパサンド (&) で区切ります。 たとえば、キー my second tag と値 my second tag valueを追加するには、完全なオプション文字列が --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'。
--blob-tags オプションを使用する方法の例を次に示します。
ヒント
これらの例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用する場合は、パス引数を単一引用符 ('') ではなく二重引用符 ("") で囲みます。
ファイルをアップロードする
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
ディレクトリをアップロードする
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
ディレクトリの内容をアップロードする
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Note
ソースのディレクトリを指定した場合、コピー先にコピーするすべての BLOB は、コマンドで指定したのと同じタグを持ちます。
オプションのフラグを使用してアップロードする
オプションのフラグを使用して、アップロード操作を調整できます。 以下にいくつか例を示します。
| シナリオ | フラグ |
|---|---|
| 追加 BLOB またはページ BLOB としてファイルをアップロードします。 | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
| 特定のアクセス層 (アーカイブ層など) にアップロードします。 | --block-blob-tier=[None|Hot|Cool|Archive] |
完全な一覧については、「オプション」を参照してください。
ソースと宛先の種類を指定する
AzCopy では、パイプのシナリオやエミュレーターなど、自動検出が失敗する可能性がある場合に、 --from-to パラメーターを使用して、ソースと宛先のリソースの種類を明示的に定義します。 このパラメーターは、AzCopy が転送のコンテキストを理解し、それに応じて最適化するのに役立ちます。
| FromTo 値 | Description |
|---|---|
LocalBlob |
ローカル ファイル システムから Azure Blob Storage にアップロードする |
LocalBlobFS |
ローカル ファイル システムから Azure Data Lake Gen2 (BlobFS) にアップロードする |
PipeBlob |
パイプから Azure Blob Storage へのデータのストリーミング |
PipeFile |
パイプから Azure File Storage へのデータのストリーミング |
次のステップ
他の例については、次の記事を参照してください。
設定の構成、パフォーマンスの最適化、および問題のトラブルシューティングを行うには、次の記事を参照してください。