AzCopy とファイル ストレージでデータを転送する

AzCopy は、ストレージ アカウント間でのファイル コピーに利用できるコマンドライン ユーティリティです。 この記事には、Azure Files で使用するサンプル コマンドが含まれています。

作業の開始

AzCopy のダウンロード方法と、ストレージ サービスに認証資格情報を与える方法については、AzCopy の作業開始に関するページをご覧ください。

Note

この記事の例では、SAS トークンを使用してアクセスを認可する方法を示します。 ただし、ファイルとディレクトリを対象とするコマンドでは、Microsoft Entra ID を使用して認可資格情報を指定し、それらのコマンドから SAS トークンを省略できるようになりました。 ファイル共有またはアカウントのみを対象とするコマンドでは、SAS トークンを使用する必要があります (例: 'azcopy make https://mystorageaccount.file.core.windows.net/myfileshare' または 'azcopy copy 'https://mystorageaccount.file.core.windows.net')。

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

ファイル共有の作成

azcopy make コマンドを使用し、ファイル共有を作成できます。 このセクションの例では、myfileshare という名前のファイル共有を作成します。

ヒント

この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

構文

azcopy make 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>'

azcopy make 'https://mystorageaccount.file.core.windows.net/myfileshare?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'

詳細なリファレンス ドキュメントについては、「azcopy make」を参照してください。

ファイルをアップロードする

azcopy copy コマンドを使用して、ローカル コンピューターからファイルやディレクトリをアップロードできます。

ヒント

このセクションの例では、単一引用符 ('') でパス引数を囲みます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

このセクションには、次の例が含まれています。

  • ファイルをアップロードする
  • ディレクトリをアップロードする
  • ディレクトリの内容をアップロードする
  • 特定のファイルをアップロードする

ヒント

オプションのフラグを使用して、アップロード操作を調整できます。 以下にいくつか例を示します。

シナリオ フラグ
ファイルと共にアクセス制御リスト (ACL) をコピーします。 --preserve-smb-permissions=[true|false]
ファイルと共に SMB プロパティ情報をコピーします。 --preserve-smb-info=[true|false]

完全な一覧については、「オプション」を参照してください。

Note

AzCopy が、256 MB を超えるファイルに対して、ファイルの md5 ハッシュ コードを自動的に計算して格納することはありません。AzCopy でこれを行う場合は、各コピー コマンドに --put-md5 フラグを追加します。 そうすることで、ファイルがダウンロードされたとき、AzCopy では、ダウンロードするデータの MD5 ハッシュが計算され、ファイルの Content-md5 プロパティに格納されている MD5 ハッシュが計算されたハッシュに一致するかどうかが検証されます。

ファイルをアップロードする

構文

azcopy copy '<local-file-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-name>'

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.file.core.windows.net/myfileshare/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' --preserve-smb-permissions=true --preserve-smb-info=true

ファイル パスまたはファイル名の任意の場所で、ワイルドカード記号 (*) を使用してファイルをアップロードすることもできます。 例: 'C:\myDirectory\*.txt'、または C:\my*\*.txt

ディレクトリをアップロードする

この例では、ディレクトリ (とそのディレクトリ内のすべてのファイル) がファイル共有にコピーされます。 その結果、同じ名前でファイル共有にディレクトリが生成されます。

構文

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?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' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

ファイル共有内のディレクトリにコピーするには、コマンド文字列でそのディレクトリの名前を指定します。

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?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' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

ファイル共有に存在しないディレクトリの名前を指定すると、AzCopy は、その名前で新しいディレクトリを作成します。

ディレクトリの内容をアップロードする

ワイルドカード記号 (*) を使用することで、ディレクトリ自体をコピーせずにディレクトリの内容をアップロードできます。

構文

azcopy copy '<local-directory-path>/*' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>'

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?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' --preserve-smb-permissions=true --preserve-smb-info=true

Note

すべてのサブディレクトリのファイルをアップロードするには、--recursive フラグを追加します。

特定のファイルをアップロードする

完全なファイル名、ワイルドカード文字 (*) を使用した部分的な名前、または日付と時刻を使用して、特定のファイルをアップロードすることができます。

複数の完全なファイル名を指定する

azcopy copy コマンドを --include-path オプションと共に使用します。 セミコロン (;) を使用して、個々のファイル名を区切ります。

構文

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-path <semicolon-separated-file-list>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-path 'photos;documents\myFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

この例では、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>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-pattern 'myFile*.txt;*.pdf*' --preserve-smb-permissions=true --preserve-smb-info=true

--exclude-pattern オプションを使用してファイルを除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。

--include-pattern オプションと --exclude-pattern オプションは、パスではなくファイル名にのみ適用されます。 ディレクトリ ツリーに存在するテキスト ファイルをすべてコピーする場合は、--recursive オプションを使用してディレクトリ ツリー全体を取得し、次に --include-pattern を使用して *.txt を指定し、すべてのテキスト ファイルを取得します。

ある日時の後に変更されたファイルをアップロードする

azcopy copy コマンドを --include-after オプションと共に使用します。 日時を ISO 8601 形式で指定します (例: 2020-08-19T15:04:00Z)。

構文

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-after '2020-08-19T15:04:00Z' --preserve-smb-permissions=true --preserve-smb-info=true

詳細なリファレンスについては、azcopy copy リファレンス ドキュメントを参照してください。

ファイルのダウンロード

azcopy copy コマンドを使用して、ファイル、ディレクトリ、ファイル共有をローカル コンピューターにダウンロードできます。

ヒント

このセクションの例では、単一引用符 ('') でパス引数を囲みます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

このセクションには、次の例が含まれています。

  • ファイルをダウンロードする
  • ディレクトリをダウンロードする
  • ディレクトリの内容をダウンロードする
  • 特定のファイルをダウンロードする

ヒント

オプションのフラグを使用して、ダウンロード操作を調整できます。 次に例をいくつか示します。

シナリオ フラグ
ファイルと共にアクセス制御リスト (ACL) をコピーします。 --preserve-smb-permissions=[true|false]
ファイルと共に SMB プロパティ情報をコピーします。 --preserve-smb-info=[true|false]
自動的にファイルを圧縮解除します。 --decompress

完全な一覧については、「オプション」を参照してください。

Note

ファイルの Content-md5 プロパティ値にハッシュが含まれる場合、AzCopy では、ダウンロードするデータの MD5 ハッシュが計算され、ファイルの Content-md5 プロパティに格納されている MD5 ハッシュが計算されたハッシュに一致するかどうかが検証されます。 これらの値が一致しない場合、--check-md5=NoCheck または --check-md5=LogOnly をコピー コマンドに追加してこの動作をオーバーライドしない限り、ダウンロードは失敗します。

ファイルをダウンロードする

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' '<local-file-path>'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/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' 'C:\myDirectory\myTextFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

ディレクトリをダウンロードする

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?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' 'C:\myDirectory'  --recursive --preserve-smb-permissions=true --preserve-smb-info=true

この例を実行すると、ダウンロードしたファイルがすべて含まれる C:\myDirectory\myFileShareDirectory という名前のディレクトリが生成されます。

ディレクトリの内容をダウンロードする

ワイルドカード記号 (*) を使用することで、ディレクトリ自体をコピーせずにディレクトリの内容をダウンロードできます。

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/*<SAS-token>' '<local-directory-path>/'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory/*?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' 'C:\myDirectory' --preserve-smb-permissions=true --preserve-smb-info=true

Note

すべてのサブディレクトリのファイルをダウンロードするには、--recursive フラグを追加します。

特定のファイルをダウンロードする

完全なファイル名、ワイルドカード文字 (*) を使用した部分的な名前、または日付と時刻を使用して、特定のファイルをダウンロードすることができます。

複数の完全なファイル名を指定する

azcopy copy コマンドを --include-path オプションと共に使用します。 セミコロン (;) を使用して、個々のファイル名を区切ります。

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-path <semicolon-separated-file-list>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

この例では、AzCopy によって https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos ディレクトリと https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/documents/myFile.txt ファイルが転送されます。 https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos ディレクトリ内のすべてのファイルを転送するには、--recursive オプションを含めます。

--exclude-path オプションを使用してファイルを除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。

ワイルドカード文字を使用する

azcopy copy コマンドを --include-pattern オプションと共に使用します。 ワイルドカード文字を含む名前の一部を指定します。 セミコロン (;) で名前を区切ります。

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*' --preserve-smb-permissions=true --preserve-smb-info=true

--exclude-pattern オプションを使用してファイルを除外することもできます。 詳細については、「azcopy copy」リファレンス ドキュメントを参照してください。

--include-pattern オプションと --exclude-pattern オプションは、パスではなくファイル名にのみ適用されます。 ディレクトリ ツリーに存在するテキスト ファイルをすべてコピーする場合は、--recursive オプションを使用してディレクトリ ツリー全体を取得し、次に --include-pattern を使用して *.txt を指定し、すべてのテキスト ファイルを取得します。

ある日時の後に変更されたファイルをダウンロードする

azcopy copy コマンドを --include-after オプションと共に使用します。 日付と時刻を ISO-8601 形式で指定します (例: 2020-08-19T15:04:00Z)。

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name>/*<SAS-token>' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/*?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z' --preserve-smb-permissions=true --preserve-smb-info=true

詳細なリファレンスについては、azcopy copy リファレンス ドキュメントを参照してください。

共有スナップショットからのダウンロード

ファイルまたはディレクトリの特定のバージョンをダウンロードするには、共有スナップショットの DateTime 値を参照します。 共有スナップショットの詳細については、「Azure Files の共有スナップショットの概要」を参照してください。

構文

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path-or-directory-name><SAS-token>&sharesnapshot=<DateTime-of-snapshot>' '<local-file-or-directory-path>'

例 (ファイルのダウンロード)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/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' 'C:\myDirectory\myTextFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

例 (ディレクトリのダウンロード)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?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' 'C:\myDirectory'  --recursive --preserve-smb-permissions=true --preserve-smb-info=true

ストレージ アカウント間でファイルをコピーする

AzCopy を使用し、ファイルを他のストレージ アカウントにコピーできます。 コピー操作は同期であるため、コマンドが戻るときにすべてのファイルがコピーされます。

AzCopy では、サーバー間API が使用されます。そのため、データはストレージ サーバー間で直接コピーされます。 AZCOPY_CONCURRENCY_VALUE 環境変数の値を設定することによって、これらの操作のスループットを上げることができます。 詳細については、コンカレンシーの向上に関するページを参照してください。

また、共有スナップショットの DateTime 値を参照して、特定のバージョンのファイルをコピーすることもできます。 共有スナップショットの詳細については、「Azure Files の共有スナップショットの概要」を参照してください。

ヒント

このセクションの例では、単一引用符 ('') でパス引数を囲みます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

このセクションには、次の例が含まれています。

  • 別のストレージ アカウントにファイルをコピーする
  • 別のストレージ アカウントにディレクトリをコピーする
  • 別のストレージ アカウントにファイル共有をコピーする
  • すべてのファイル共有、ディレクトリ、ファイルを別のストレージ アカウントにコピーする

ヒント

オプションのフラグを使用して、コピー操作を調整できます。 以下にいくつか例を示します。

シナリオ フラグ
ファイルと共にアクセス制御リスト (ACL) をコピーします。 --preserve-smb-permissions=[true|false]
ファイルと共に SMB プロパティ情報をコピーします。 --preserve-smb-info=[true|false]

完全な一覧については、「オプション」を参照してください。

別のストレージ アカウントにファイルをコピーする

構文

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>'

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --preserve-smb-permissions=true --preserve-smb-info=true

例 (共有スナップショット)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --preserve-smb-permissions=true --preserve-smb-info=true

別のストレージ アカウントにディレクトリをコピーする

構文

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

例 (共有スナップショット)

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

別のストレージ アカウントにファイル共有をコピーする

構文

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D --preserve-smb-permissions=true --preserve-smb-info=true

例 (共有スナップショット)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

すべてのファイル共有、ディレクトリ、ファイルを別のストレージ アカウントにコピーする

構文

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive'

azcopy copy 'https://mysourceaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

例 (共有スナップショット)

azcopy copy 'https://mysourceaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

ファイルを同期する

ローカル ファイル システムのコンテンツをファイル共有と同期させたり、ファイル共有の間でコンテンツを同期させたりすることができます。 また、ファイル共有内のディレクトリの内容を、別のファイル共有に配置されているディレクトリの内容と同期させることもできます。 同期は一方向です。 言い換えると、2 つのエンドポイントのいずれかを同期元として、いずれかを同期先として選択します。 同期にもサーバー間 API が使用されます。

Note

現在、このシナリオは、BLOB エンドポイントを使用して階層型名前空間を有効にしているアカウントでサポートされています。

警告

AzCopy の sync はサポートされていますが、Azure Files については完全には推奨されません。 AzCopy の sync では、大規模な差分コピーはサポートされていないため、一部のファイルの忠実性が失われる可能性があります。 詳細については、「Azure ファイル共有への移行」を参照してください。

ガイドライン

既定では、sync コマンドではファイル名と最後に変更されたタイムスタンプが比較されます。 最終変更タイムスタンプの代わりに MD5 ハッシュを使用するように、--compare-hash フラグを使用してその動作をオーバーライドできます。 省略可能な --delete-destination フラグの値を true または prompt に設定すると、コピー元のディレクトリにファイルがもう存在しなくなると、コピー先のディレクトリからそれらのファイルが削除されます。

  • --delete-destination フラグを true に設定すると、AzCopy では、プロンプトが表示されずにファイルが削除されます。 AzCopy でファイルが削除される前にプロンプトを表示する場合、--delete-destination フラグを prompt に設定します。

  • --delete-destination フラグを prompt または false に設定する場合は、sync コマンドではなく copy コマンドを使用し、--overwrite パラメーターを ifSourceNewer に設定することを検討してください。 copy コマンドでは、消費されるメモリ量が少なくなり、発生する課金コストが減ります。これは、コピー操作では、ファイルを移動する前にコピー元またはコピー先のインデックスを作成する必要がないからです。

  • --compare-hash フラグを使用する予定がない場合、sync コマンドを実行するマシンでは、ファイルを転送する必要があるかどうかの判断において最終変更時刻が重要になるため、正確なシステム クロックが必要になります。 システムのクロック スキューが大きい場合は、sync コマンドの実行を計画している時刻にあまりに近い時点で、コピー先でのファイル変更を行わないようにしてください。

  • AzCopy では、サーバー間 API を使用してストレージ アカウント間でデータを同期します。 つまり、データはストレージ サーバー間で直接コピーされます。 ただし、AzCopy では、各転送が設定され、監視されます。大規模なストレージ アカウント (たとえば、数百万の BLOB を含むアカウント) の場合、AzCopy ではこれらのタスクを実行するために大量のコンピューティング リソースが必要になる場合があります。 したがって、仮想マシン (VM) から AzCopy を実行している場合、VM に負荷を処理するのに十分なコア/メモリがあることを確認します。

ヒント

オプションのフラグを使用して、同期操作を調整できます。 以下にいくつか例を示します。

シナリオ フラグ
ファイルと共にアクセス制御リスト (ACL) をコピーします。 --preserve-smb-permissions=[true|false]
ファイルと共に SMB プロパティ情報をコピーします。 --preserve-smb-info=[true|false]
パターンに基づいてファイルを除外します。 --exclude-path
同期に関連するログ エントリの詳細レベルを指定します。 --log-level=[WARNING|ERROR|INFO|NONE]

完全な一覧については、オプションを参照してください。

このセクションの例では、単一引用符 ('') でパス引数を囲みます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

ローカル ファイル システムへの変更を使用してファイル共有を更新する

この場合、ファイル共有がコピー先であり、ローカル ファイル システムがコピー元です。

ヒント

この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

構文

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive

ファイル共有への変更を使用してローカル ファイル システムを更新する

この場合、ローカル ファイル システムがコピー先であり、ファイル共有がコピー元です。

ヒント

この例では、パス引数を単一引用符 ('') で囲んでいます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (cmd.exe) を使用している場合は、単一引用符 ('') ではなく、二重引用符 ("") でパス引数を囲みます。

構文

azcopy sync 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'C:\myDirectory' --recursive

azcopy sync 'https://mystorageaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory' --recursive

別のファイル共有への変更を使用してファイル共有を更新する

このコマンドに表示される最初のファイル共有がソースです。 2 つ目が宛先です。

構文

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

別のファイル共有内のディレクトリへの変更を使用してディレクトリを更新する

このコマンドに表示される最初のディレクトリがソースです。 2 つ目が宛先です。

構文

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' --recursive

azcopy sync 'https://mysourceaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

共有スナップショットの内容と一致するようにファイル共有を更新する

このコマンドに表示される最初のファイル共有がソースです。 URI の末尾に文字列 &sharesnapshot= を追加し、その後にスナップショットの DateTime 値を追加します。

構文

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>&sharesnapsot<snapshot-ID>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-03-03T20%3A24%3A13.0000000Z' 'https://mydestinationaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

共有スナップショットの詳細については、「Azure Files の共有スナップショットの概要」を参照してください。

次のステップ

以下の記事にサンプルがあります。

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