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
秘訣
使用 Azure 檔案儲存體 NFS 時,您必須使用下列其中一個支援的選項來指定 --from-to CLI 參數:FileNFSLocal、LocalFileNFS 或您的命令中的 FileNFSFileNFS。
只有本端 Linux 環境支援使用 LocalFileNFS 和 FileNFSLocal 的上傳及下載實務範例。 Windows 或 macOS 不支援這些作業。 相反地,Windows、Linux 及 macOS 都支援使用伺服器對伺服器複製 API 的 FileNFSFileNFS 案例。 您可以從任何這些平台執行相關聯的命令。
建立檔案共用
您可以使用 azcopy make 命令來建立檔案共用。 本節中的範例會建立名為 myfileshare 的檔案共用。
附註
AzCopy 10.30.0 版引進了中斷性變更,它不再針對涉及使用 NFS 或 SMB 通訊協定的 Azure 檔案儲存體,自動建立傳輸的檔案共用。
秘訣
此範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
語法
azcopy make 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>'
範例
如需詳細的參考文件,請參閱 azcopy make。
上傳檔案
使用 azcopy copy 命令從本機電腦上傳檔案和目錄。
秘訣
此節中的範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
本區段包含下列範例:
- 上傳檔案
- 上傳目錄
- 上傳目錄的內容
- 上傳特定檔案
秘訣
使用選用旗標來自訂您的上傳作業。 以下是一些範例:
| 狀況 | 旗標 |
|---|---|
| 一起複製存取控制清單 (ACL) 與檔案。 | --preserve-permissions=[true|false] |
| 一起複製 SMB 屬性資訊與檔案。 | --preserve-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?[SAS]' --preserve-permissions=true --preserve-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?[SAS]' --recursive --preserve-permissions=true --preserve-info=true
若要複製到檔案共用內的目錄,只需在命令字串中指定該目錄的名稱即可。
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-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?[SAS]' --preserve-permissions=true --preserve-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?[SAS]' --include-path 'photos;documents\myFile.txt' --preserve-permissions=true --preserve-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?[SAS]' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-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?[SAS]' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-info=true
上傳 Blob 時指定來源和目的地類型
AzCopy 會使用參數 --from-to 來明確定義自動偵測可能失敗時的來源和目的地資源類型,例如在管道案例或模擬器中。 此參數可協助 AzCopy 瞭解傳輸的內容,並據以最佳化。
| FromTo 值 | Description |
|---|---|
LocalFileSMB |
從本機檔案系統上傳至 Azure 檔案儲存體中的 SMB 共用 |
LocalFileNFS |
從本機檔案系統 (僅限 Linux) 上傳至 Azure 檔案儲存體中的 NFS 共用 |
PipeFile |
將資料從管道串流到 Azure 檔案儲存體 |
下載檔案
使用 azcopy copy 命令將檔案、目錄和檔案共用下載至本機電腦。
秘訣
此節中的範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
本區段包含下列範例:
- 下載檔案
- 下載目錄
- 下載目錄的內容
- 下載特定檔案
秘訣
使用選用旗標來自訂您的下載作業。 以下是一些範例:
| 狀況 | 旗標 |
|---|---|
| 一起複製存取控制清單 (ACL) 與檔案。 | --preserve-permissions=[true|false] |
| 一起複製 SMB 屬性資訊與檔案。 | --preserve-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?[SAS]' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-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?[SAS]' 'C:\myDirectory' --recursive --preserve-permissions=true --preserve-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/*?[SAS]' 'C:\myDirectory' --preserve-permissions=true --preserve-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?[SAS]' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt' --recursive --preserve-permissions=true --preserve-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?[SAS]' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-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/*?[SAS]' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-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?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-info=true
範例 (下載目錄)
azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory' --recursive --preserve-permissions=true --preserve-info=true
下載檔案時指定來源和目的地類型
AzCopy 會使用參數 --from-to 來明確定義自動偵測可能失敗時的來源和目的地資源類型,例如在管道案例或模擬器中。 此參數可協助 AzCopy 瞭解傳輸的內容,並據以最佳化。
| FromTo 值 | Description |
|---|---|
FileSMBLocal |
從 Azure 檔案儲存體中的 SMB 共用下載到本機檔案系統 |
FileNFSLocal |
從 Azure 檔案儲存體中的 NFS 共用下載到本機檔案系統 (僅限 Linux) |
FileSMBLocal |
從 SMB 共用下載到本機檔案系統 |
FilePipe |
將資料從 Azure 檔案儲存體串流到管道 |
在儲存體帳戶之間複製檔案
您可以使用 AzCopy 將檔案複製到其他儲存體帳戶。 複製作業是同步的,因此當命令傳回時,會複製所有檔案。
AzCopy 會使用伺服器對伺服器 AP,因此資料會直接在儲存體伺服器之間複製。 您可以藉由設定 AZCOPY_CONCURRENCY_VALUE 環境變數的值,來增加這些作業的輸送量。 若要深入了解,請參閱增加並行。
您也可以藉由參考共用快照集的 DateTime 值,複製特定版本的檔案。 若要深入了解共用快照集,請參閱 Azure 檔案的共用快照集概觀。
秘訣
此節中的範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
本區段包含下列範例:
- 將檔案複製到另一個儲存體帳戶
- 將目錄複製到另一個儲存體帳戶
- 將檔案共用複製到另一個儲存體帳戶
- 將所有檔案共用、目錄和檔案複製到另一個儲存體帳戶
秘訣
您可以使用選擇性旗標來調整複製作業。 以下提供數個範例。
| 狀況 | 旗標 |
|---|---|
| 一起複製存取控制清單 (ACL) 與檔案。 | --preserve-permissions=[true|false] |
| 一起複製 SMB 屬性資訊與檔案。 | --preserve-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?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true
範例 (共用快照集)
azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-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?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-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://<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?[SAS]' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true
範例 (共用快照集)
azcopy copy 'https://mysourceaccount.file.core.windows.net?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true
複製檔案時指定來源和目的地類型
AzCopy 會使用參數 --from-to 來明確定義自動偵測可能失敗時的來源和目的地資源類型,例如在管道案例或模擬器中。 此參數可協助 AzCopy 瞭解傳輸的內容,並據以最佳化。
| FromTo 值 | Description |
|---|---|
FileBlob |
從 Azure 檔案儲存體複製到 Azure Blob 儲存體 |
FileBlobFS |
從 Azure 檔案儲存體複製到 Azure Data Lake Gen2 (BlobFS) |
FileSMBFileSMB |
在 Azure 檔案儲存體中的兩個 SMB 共用之間複製 |
FileNFSFileNFS |
在 Azure 檔案儲存體中的兩個 NFS 共用之間複製 |
FileNFSFileSMB |
從 Azure 檔案儲存體 NFS 複製到 Azure 檔案儲存體 SMB |
FileSMBFileNFS |
從 Azure 檔案儲存體 SMB 複製到 Azure 檔案儲存體 NFS |
同步處理檔案
您可以同步處理本機檔案系統與檔案共用的內容,或是同步處理檔案共用與另一個檔案共用的內容。 您也可以同步處理檔案共用中目錄的內容與位於另一個檔案共用中目錄的內容。 同步是單向的。 換句話說,您可以在這兩個端點中選擇哪一個是來源,哪一個是目的地。 同步也會使用伺服器對伺服器 API。
警告
支援 AzCopy 同步處理,但不建議完全用於 Azure 檔案儲存體。 AzCopy 同步支援每個 AzCopy 作業最多 1000 萬個檔案,而且某些檔案的完整性可能會遺失,因為 AzCopy 會使用 Azure Files REST API 將內容複製到 Azure 檔案分享。 若要深入了解,請參閱移轉到 Azure 檔案共用。
指導方針
根據預設,Sync 命令會比較檔案名稱和上次修改的時間戳記。 您可以使用 --compare-hash 旗標覆寫該行為,以使用 MD5 雜湊,而不是上次修改的時間戳記。 將 --delete-destination 選擇性旗標設定為 true 或 prompt 的值,以在檔案不再存在來源目錄中時,在目的地目錄中刪除那些檔案。
如果將
--delete-destination旗標設定為true,AzCopy 就會在不提供提示的情況下刪除檔案。 如果想要在 AzCopy 刪除檔案之前顯示提示,可將--delete-destination旗標設定為prompt。如果您打算將
--delete-destination旗標設定為prompt或false,請考慮使用 copy 命令,而不是 sync 命令,並將--overwrite參數設定為ifSourceNewer。 Copy 命令所耗用的記憶體比較少,因而產生的帳單成本比較少,因為複製作業不需要在移動檔案之前,先為來源或目的地編製索引。如果您不打算使用
--compare-hash旗標,則執行 sync 命令所在的機器應該具有正確的系統時鐘,因為上次修改時間對於判斷是否應傳送檔案而言很重要。 如果您的系統有顯著的時鐘誤差,請避免在太接近您打算執行 sync 命令的時間修改目的地檔案。AzCopy 使用伺服器對伺服器 API 來同步處理儲存體帳戶之間的資料。 這表示資料會直接在儲存體伺服器之間複製。 不過,AzCopy 會設定和監視每個傳輸,以及針對較大的儲存體帳戶 (例如,包含數百萬個 Blob 的帳戶),AzCopy 可能需要大量的計算資源來完成這些工作。 因此,如果您是從虛擬機器 (VM) 執行 AzCopy,請確定 VM 有足夠的核心/儲存體來處理負載。
秘訣
您可以使用選擇性旗標來調整同步作業。 以下提供數個範例。
| 狀況 | 旗標 |
|---|---|
| 一起複製存取控制清單 (ACL) 與檔案。 | --preserve-permissions=[true|false] |
| 一起複製 SMB 屬性資訊與檔案。 | --preserve-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?[SAS]' --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?[SAS]' '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?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-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?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-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?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true
若要深入了解共用快照集,請參閱 Azure 檔案的共用快照集概觀。
要保留的屬性和權限
秘訣
當您將檔案下載至本端 Linux 系統時,如果指定的擁有者或群組與目前使用者的擁有者或群組不同,則需要提高權限。 若要變更下載檔案的擁有權或群組,請使用 sudo 或以 root 使用者身分執行 azcopy。
| Type | 屬性 (--preserve-info) | 權限 (--preserve-permissions) |
|---|---|---|
| Azure 檔案儲存體 SMB | NTFSFileAttributes (ReadOn ReadOnly、Hidden、System、Directory、Archive、None、Temporary、Offline、NotContentIndexed、NoScrubData) (x-ms-file-attributes) CreationTime (x-ms-file-creation-time) LastWriteTime (x-ms-file-last-write-time) |
ACLs (x-ms-file-permission) |
| Azure 檔案儲存體 NFS | CreationTime (x-ms-file-creation-time) LastWriteTime (x-ms-file-last-write-time) |
Owner (x-ms-owner) Group (x-ms-group) FileMode (x-ms-mode) |
後續步驟
如需更多範例,請參閱以下任何文章:
請參閱下列文章,以進行設定、將效能最佳化,以及針對問題進行疑難排解: