使用 AzCopy 和檔案儲存空間傳輸資料

AzCopy 是命令列公用程式,可讓您在儲存體帳戶之間複製檔案。 本文包含可搭配 Azure 檔案儲存體使用的命令範例。

開始使用

請參閱開始使用 AzCopy (部分機器翻譯) 一文來下載 AzCopy,並了解如何提供授權認證給儲存體服務。

注意

本文中的範例示範如何使用 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]

如需完整的清單,請參閱選項

注意

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

注意

附加 --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 檔案。 您必須包含 --recursive 選項以傳輸 C:\myDirectory\photos 目錄中的所有檔案。

您也可以使用 --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

如需完整的清單,請參閱選項

注意

如果檔案的 Content-md5 屬性值包含雜湊,AzCopy 會計算所下載資料的 MD5 雜湊,並驗證儲存在檔案 Content-md5 屬性中的 MD5 雜湊是否與計算出的雜湊相符。 如果這些值不相符,除非將 --check-md5=NoCheck--check-md5=LogOnly 附加至 copy 命令來覆寫此行為,否則下載會失敗。

下載檔案

語法

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

注意

附加 --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 檔案的共用快照集概觀

語法

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 檔案的共用快照集概觀

提示

此節中的範例會以單引號 ('') 括住路徑引數。 除了 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

同步處理檔案

您可以同步處理本機檔案系統與檔案共用的內容,或是同步處理檔案共用與另一個檔案共用的內容。 您也可以同步處理檔案共用中目錄的內容與位於另一個檔案共用中目錄的內容。 同步是單向的。 換句話說,您可以在這兩個端點中選擇哪一個是來源,哪一個是目的地。 同步也會使用伺服器對伺服器 API。

注意

目前,透過 Blob 端點啟用階層命名空間的帳戶支援此案例。

警告

支援 AzCopy 同步處理,但不建議完全用於 Azure 檔案儲存體。 AzCopy 同步處理不支援大規模的差異複本,而且可能會遺失部分檔案的精確度。 若要深入了解,請參閱移轉到 Azure 檔案共用

指導方針

根據預設,Sync 命令會比較檔案名稱和上次修改的時間戳記。 您可以使用 --compare-hash 旗標覆寫該行為,以使用 MD5 雜湊,而不是上次修改的時間戳記。 將 --delete-destination 選擇性旗標設定為 trueprompt 的值,以在檔案不再存在來源目錄中時,在目的地目錄中刪除那些檔案。

  • 如果將 --delete-destination 旗標設定為 true,AzCopy 就會在不提供提示的情況下刪除檔案。 如果想要在 AzCopy 刪除檔案之前顯示提示,可將 --delete-destination 旗標設定為 prompt

  • 如果您打算將 --delete-destination 旗標設定為 promptfalse,請考慮使用 copy 命令,而不是 sync 命令,並將 --overwrite 參數設定為 ifSourceNewerCopy 命令所耗用的記憶體比較少,因而產生的帳單成本比較少,因為複製作業不需要在移動檔案之前,先為來源或目的地編製索引。

  • 如果您不打算使用 --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

使用其他檔案共用的變更來更新檔案共用

此命令中出現的第一個檔案共用為來源。 第二個則是目的地。

語法

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

使用對另一個檔案共用中目錄所做的變更來更新目錄

此命令中出現的第一個目錄為來源。 第二個則是目的地。

語法

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 檔案的共用快照集概觀

下一步

如需更多範例,請參閱以下任何文章:

請參閱下列文章,以進行設定、將效能最佳化,以及針對問題進行疑難排解: