您可以使用 AzCopy v10 命令列公用程式,從 Blob 儲存體下載 Blob 和目錄。
如需其他類型工作的範例,例如上傳檔案、與 Blob 儲存體同步處理,或在帳戶之間複製 Blob,請參閱本文後 續步驟 一節中的連結。
開始
請參閱開始使用 AzCopy (部分機器翻譯) 一文來下載 AzCopy,並了解如何提供授權認證給儲存體服務。
附註
本文中的範例假設您使用 Microsoft Entra ID 提供授權認證。
如果您想改為使用 SAS 權杖來授權存取 Blob 資料,則可將該權杖附加至每個 AzCopy 命令中的資源 URL。 例如:'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'。
下載 Blob
使用 azcopy copy 命令下載 Blob。
秘訣
此範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' '<local-file-path>'
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'
範例 (Data Lake Storage 端點)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'
附註
如果 Blob 的 Content-md5 屬性值包含雜湊,AzCopy 會計算所下載資料的 MD5 雜湊,並驗證儲存在 Blob Content-md5 屬性中的 MD5 雜湊是否與計算出的雜湊相符。 如果這些值不相符,除非將 --check-md5=NoCheck 或 --check-md5=LogOnly 附加至 copy 命令來覆寫此行為,否則下載會失敗。
下載目錄
使用 azcopy copy 命令下載目錄。
秘訣
此範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數,而非單引號 ('')。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' '<local-directory-path>' --recursive
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory' --recursive
範例 (Data Lake Storage 端點)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory' --recursive
此範例會產生名為 C:\myDirectory\myBlobDirectory 的目錄,其中包含所有已下載的 Blob。
下載目錄內容
您可以下載目錄的內容,而不需使用萬用字元符號 (*) 複製包含的目錄本身。
秘訣
此範例會以單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數而非單引號 ('')。
附註
目前僅沒有階層命名空間的帳戶支援此案例。
語法
azcopy copy 'https://<storage-account-name>.blob.core.windows.net/<container-name>/*' '<local-directory-path>/'
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*' 'C:\myDirectory'
附加 --recursive 旗標以下載所有子目錄中的檔案。
下載特定 Blob
您可以使用完整檔案名稱、含萬用字元 (*) 的部分名稱,或使用日期和時間來下載特定 Blob。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數而非單引號 ('')。
指定多個完整的 Blob 名稱
使用 azcopy copy 命令搭配 --include-path 選項。 使用分號 (;) 來分隔各個 Blob 名稱。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-path <semicolon-separated-file-list>
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt' --recursive
範例 (Data Lake Storage 端點)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt'--recursive
在此範例中,AzCopy 會傳輸 https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos 目錄和 https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/documents/myFile.txt 檔案。 包含 https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos 選項以傳輸 --recursive 目錄中的所有 Blob。
您也可以使用 --exclude-path 選項來排除 Blob。 若要深入了解,請參閱 azcopy copy 參考文件。
使用萬用字元
使用 azcopy copy 命令搭配 --include-pattern 選項。 指定包含萬用字元的部分名稱。 使用分號 (;) 分隔名稱。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*'
範例 (階層命名空間)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*'
您也可以使用 --exclude-pattern 選項來排除 Blob。 若要深入了解,請參閱 azcopy copy 參考文件。
--include-pattern 和 --exclude-pattern 選項只適用於 Blob 名稱,不適用於路徑。 如果您想要複製存在於目錄樹狀結構中的所有文字檔 (Blob),請使用 -recursive 選項取得整個目錄樹狀結構,然後使用 -include-pattern 並指定 *.txt 來取得所有文字檔。
下載於某日期和時間之前或之後修改過的 Blob
使用 azcopy copy 命令搭配 --include-before 或 --include-after 選項。 以 ISO-8601 格式指定日期和時間 (例如:2020-08-19T15:04:00Z)。
下列範例會下載於指定日期或該日之後修改過的檔案。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>/*' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z'
範例 (Data Lake Storage 端點)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z'
如需詳細參考資料,請參閱 azcopy copy 參考文件。
下載舊版的 Blob
如果您啟用 Blob 版本設定,您可以下載 Blob 的一或多個舊版。
首先,建立包含版本識別碼清單的文字檔。 每個版本識別碼都必須顯示在不同行上。 例如:
2020-08-17T05:50:34.2199403Z
2020-08-17T05:50:34.5041365Z
2020-08-17T05:50:36.7607103Z
然後使用 azcopy copy 命令搭配 --list-of-versions 選項。 指定包含版本清單之文字檔的所在位置 (例如:D:\\list-of-versions.txt)。
下載 Blob 快照集
您可以參考 Blob 快照集的 DateTime 值來下載 Blob 快照集。
語法
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>?sharesnapshot=<DateTime-of-snapshot>' '<local-file-path>'
範例
azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'
範例 (Data Lake Storage 端點)
azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'
附註
如果您使用 SAS 權杖來授權存取 Blob 資料,請在 SAS 權杖之後附加快照集 DateTime 。 例如:'https://mystorageaccount.blob.core.windows.net/mycontainer/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'。
使用選用的旗標下載
您可以使用選用的旗標來調整下載作業。 以下提供數個範例。
| 狀況 | 旗標 |
|---|---|
| 自動解壓縮檔案。 | --decompress |
| 指定您希望複製相關記錄項目的詳細程度。 | --log-level=[WARNING|ERROR|INFO|NONE] |
| 指定是否及如何覆寫位於目的地的衝突檔案和 Blob。 | --overwrite=[true|false|ifSourceNewer|prompt] |
如需完整的清單,請參閱選項。
下載靜態網站內容
AzCopy 不支援透過公用端點從裝載在 Azure 儲存體中的靜態網站下載資料,例如 https://mystorageaccount.z12.web.core.windows.net。 請改用 Blob 端點上的 $web 容器,從靜態網站下載檔案。
azcopy copy 'https://mystorageaccount.blob.core.windows.net/$web/*' 'C:\myDirectory' --recursive
指定來源和目的地類型
AzCopy 會使用參數 --from-to 來明確定義自動偵測可能失敗時的來源和目的地資源類型,例如在管道案例或模擬器中。 此參數可協助 AzCopy 瞭解傳輸的內容,並據以最佳化。
| FromTo 值 | Description |
|---|---|
BlobFSLocal |
從 Azure Data Lake Gen2 (BlobFS) 下載到本機檔案系統 |
BlobLocal |
從 Azure Blob 儲存體下載到本機檔案系統 |
後續步驟
如需更多範例,請參閱以下文章:
請參閱下列文章,以進行設定、將效能最佳化,以及針對問題進行疑難排解: