AzCopy を使ってみる

AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。 この記事は、AzCopy をダウンロードし、ストレージ アカウントに接続し、データを転送する際に役立ちます。

Note

AzCopy V10 が現在サポートされているバージョンの AzCopy です。

以前のバージョンの AzCopy を使用する必要がある場合は、この記事の「以前のバージョンの AzCopy の使用」セクションを参照してください。

このビデオでは、AzCopy ユーティリティをダウンロードして実行する方法について説明します。

ビデオの手順については、次のセクションでも説明します。

AzCopy をダウンロードする

まず、お使いのコンピューター上の任意のディレクトリに AzCopy V10 実行可能ファイルをダウンロードします。 AzCopy V10 は単に実行可能ファイルなので、インストールするものはありません。

これらのファイルは、zip ファイル (Windows および Mac) または tar ファイル (Linux) として圧縮されます。 Linux 上で tar ファイルをダウンロードして圧縮を解除するには、お使いの Linux ディストリビューションのドキュメントを参照してください。

AzCopy リリースの詳細については、AzCopy リリースに関するページを参照してください。

Note

Azure Table Storage サービスとの間でデータをコピーする場合、AzCopy バージョン 7.3 をインストールしてください。

AzCopy を実行する

利便性のため、AzCopy 実行可能ファイルのディレクトリの場所をご自分のシステム パスに追加して使いやすくすることを検討してください。 そうすると、ご使用のシステム上にある任意のディレクトリから「azcopy」を入力できます。

AzCopy ディレクトリをご自分のパスに追加しないことを選択した場合、実際の AzCopy 実行可能ファイルの場所にディレクトリを変更し、Windows PowerShell コマンド プロンプトで「azcopy」または「.\azcopy」と入力する必要があります。

ご自分の Azure Storage アカウントの所有者であっても、データへのアクセス許可が自動的に割り当てられるわけではありません。 AzCopy を使用して意味のある動作を行う前に、ストレージ サービスに認証資格情報を提供する方法を決定する必要があります。

AzCopy を承認する

Microsoft Entra ID または Shared Access Signature (SAS) トークンを使用して、資格情報を提供できます。

オプション 1: Microsoft Entra ID を使う

Microsoft Entra ID を使用すると、各コマンドに SAS トークンを追加する代わりに、資格情報を 1 回入力するだけで済みます。

オプション 2:SAS トークンを使用する

AzCopy コマンドで使用する各コピー元または各コピー先の URL に SAS トークンを追加できます。

この例のコマンドでは、ローカル ディレクトリから BLOB コンテナーにデータが繰り返しコピーされます。 架空の SAS トークンが、コンテナー URL の末尾に追加されます。

azcopy copy "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true

SAS トークンの詳細とその取得方法については、「Shared Access Signatures (SAS) の使用」を参照してください。

Note

ストレージ アカウントの [安全な転送が必須] 設定によって、ストレージ アカウントへの接続がトランスポート層セキュリティ (TLS) で保護されるかどうかが決まります。 既定では、この設定は有効になっています。

データの転送

ID を承認するか、SAS トークンを取得したら、データの転送を開始できます。

サンプル コマンドは次の記事のいずれかをご覧ください。

サービス [アーティクル]
Azure Blob Storage Azure Blob Storage にファイルをアップロードする
Azure Blob Storage Azure Blob Storage から BLOB をダウンロードする
Azure Blob Storage Azure ストレージ アカウント間で BLOB をコピーする
Azure Blob Storage Azure Blob Storage と同期する
Azure Files AzCopy とファイル ストレージでデータを転送する
Amazon S3 Amazon S3 から Azure Storage にデータをコピーする
Google Cloud Storage Google Cloud Storage から Azure Storage にデータをコピーする (プレビュー)
Azure Stack ストレージ AzCopy と Azure Stack ストレージを使用してデータを転送する

コマンドのヘルプを表示する

コマンドの一覧を表示するには、「azcopy -h」と入力し、ENTER キーを押します。

特定のコマンドの情報を知るには、単にコマンドの名前を含めてください (例: azcopy list -h)。

Inline help

コマンドの一覧

次の表に、AzCopy v10 のすべてのコマンドを示します。 各コマンドは、リファレンス記事にリンクされています。

command 説明
azcopy bench 指定した場所との間でテスト データをアップロードまたはダウンロードすることで、パフォーマンス ベンチマークを実行します。
azcopy copy ソース データをコピー先の場所にコピーします。
azcopy doc ツールのドキュメントをマークダウン形式で生成します。
azcopy env AzCopy の動作を構成できる環境変数を示します。
azcopy jobs ジョブの管理に関連するサブコマンド。
azcopy jobs clean すべてのジョブのログおよびプランのファイルをすべて削除します。
azcopy jobs list すべてのジョブに関する情報を表示します。
azcopy jobs remove 指定されたジョブ ID に関連付けられているすべてのファイルを削除します。
azcopy jobs resume 指定されたジョブ ID を持つ既存のジョブを再開します。
azcopy jobs show 指定されたジョブ ID の詳細情報を表示します。
azcopy list 指定されたリソース内のエンティティを一覧表示します。
azcopy login Microsoft Entra ID にログインして、Azure Storage リソースにアクセスします。
azcopy login status 指定されたリソース内のエンティティを一覧表示します。
azcopy logout ユーザーをログアウトし、Azure Storage リソースへのアクセスを終了します。
azcopy make コンテナーまたはファイル共有を作成します。
azcopy remove Azure ストレージ アカウントから BLOB またはファイルを削除します。
azcopy sync 元の場所を同期先の場所にレプリケートします。
azcopy set-properties 1 つまたは複数の BLOB のアクセス層を変更し、1 つまたは複数の BLOB のメタデータとインデックス タグを置換 (上書き) します。

Note

AzCopy には、ファイルの名前を変更するコマンドはありません。

スクリプト内で使用する

時間と共に、AzCopy のダウンロード リンクは AzCopy の新しいバージョンを指します。 実際のスクリプトで AzCopy をダウンロードする場合、実際のスクリプトで使用する機能が新しいバージョンの AzCopy で変更されていると、スクリプトの動作が停止する可能性があります。

これらの問題を回避するには、AzCopy の現在のバージョンの静的 (変更されない) リンクを取得します。 そうすることで、実際のスクリプトを実行するたびに、まったく同じバージョンの AzCopy がダウンロードされます。

そのリンクを取得するには、このコマンドを実行します。

オペレーティング システム コマンド
Linux curl -s -D- https://aka.ms/downloadazcopy-v10-linux \| grep ^Location
Windows PowerShell (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue).headers.location
PowerShell 6.1+ (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue -SkipHttpErrorCheck).headers.location

Note

Linux の場合、tar コマンドの --strip-components=1 では、バージョン名を含む最上位フォルダーが削除され、代わりに現在のフォルダーに直接バイナリが抽出されます。 これにより、wget URL を更新するだけで、新しいバージョンの azcopy でスクリプトを更新できます。

この URL はこのコマンドの出力に表示されます。 その後、実際のスクリプトでその URL を使用して AzCopy をダウンロードできます。

Linux

wget -O azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux && tar -xf azcopy_v10.tar.gz --strip-components=1

Windows PowerShell

Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\'
$AzCopy = (Get-ChildItem -path '.\' -Recurse -File -Filter 'azcopy.exe').FullName
# Invoke AzCopy 
& $AzCopy

PowerShell 6.1+

Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
$AzCopy = (Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\' -PassThru | where-object {$_.Name -eq 'azcopy.exe'}).FullName
# Invoke AzCopy
& $AzCopy

SAS トークンの特殊文字をエスケープする

拡張子が .cmd のバッチ ファイルでは、SAS トークンに出現する % 文字をエスケープする必要があります。 これを行うには、SAS トークン文字列の既存の % 文字の横に % の文字を追加します。 結果の文字シーケンスは %% と表されます。 各 & 文字の前には必ず ^ を追加し、文字シーケンス ^& を作ってください。

Jenkins を使用してスクリプトを実行する

Jenkins を使用してスクリプトを実行する場合は、必ずスクリプトの先頭に次のコマンドを配置してください。

/usr/bin/keyctl new_session

Azure Storage Explorer で使用する

Storage Explorer は、AzCopy を使用してすべてのデータ転送操作を実行します。 AzCopy のパフォーマンス上の利点を適用する場合は Storage Explorer を使用できますが、ファイルの操作にはコマンド ラインではなくグラフィカル ユーザー インターフェイスを使用することをお勧めします。

Storage Explorer では、ご自分のアカウント キーを使用して、操作を実行します。そのため、Storage Explorer にサインインした後は、追加の承認資格情報を提供する必要はありません。

構成、最適化、修正を行う

次のいずれかのリソースを参照してください。

以前のバージョンを使う (非推奨)

以前のバージョンの AzCopy を使用する必要がある場合は、次のいずれかのリンクを参照してください。

Note

これらのバージョンの AzCopy は非推奨です。 Microsoft では、AzCopy v10 の使用をお勧めします。

次のステップ

ご質問、問題、一般的なフィードバックは、GitHub ページからお送りください。