AzCopy を使用して Azure 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>'
)。
コンテナーを作成する
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
ファイルが転送されます。 C:\myDirectory\photos
ディレクトリ内のすべてのファイルを転送するには、--recursive
オプションを含めます。
--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/write
Azure リソース プロバイダーの操作に対するアクセス許可が付与されている必要があります。 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] |
完全な一覧については、「オプション」を参照してください。
次のステップ
他の例については、次の記事を参照してください。
- 例:ダウンロード」をご覧ください
- 例:アカウント間のコピー
- 例:同期
- 例:Amazon S3 バケット
- 例: Google Cloud Storage
- 例:Azure Files
- チュートリアル:AzCopy を使用したオンプレミス データのクラウド ストレージへの移行
設定の構成、パフォーマンスの最適化、および問題のトラブルシューティングを行うには、次の記事を参照してください。