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 の共有スナップショットの概要」を参照してください。
次のステップ
以下の記事にサンプルがあります。
設定の構成、パフォーマンスの最適化、および問題のトラブルシューティングを行うには、次の記事を参照してください。