次の方法で共有


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 ファイルが転送されます。 --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 へのデータのストリーミング

次のステップ

他の例については、次の記事を参照してください。

設定の構成、パフォーマンスの最適化、および問題のトラブルシューティングを行うには、次の記事を参照してください。