您可以使用 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>'。
建立容器
使用 azcopy make 命令來建立容器。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令命令命令殼 (cmd.exe),請以雙引號 (“”)而不是單引號 ('') 括住路徑引數。
語法
azcopy make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'
範例
azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'
範例 (Data Lake Storage 端點)
azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'
如需詳細的參考文件,請參閱 azcopy make。
上傳檔案
使用 azcopy copy 命令上傳檔案。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令命令命令殼 (cmd.exe),請以雙引號 (“”)而不是單引號 ('') 括住路徑引數。
語法
azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'
範例
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
您也可以在檔案路徑或檔案名中的任何位置使用萬用字元符號 (*) 來上傳檔案。 例如,'C:\myDirectory\*.txt' 或 C:\my*\*.txt。
上傳目錄
使用 azcopy copy 命令上傳目錄。
此範例會將目錄 (以及該目錄中的所有檔案) 複製到 Blob 容器。 結果是容器中具有相同名稱的目錄。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令命令命令殼 (cmd.exe),請以雙引號 (“”)而不是單引號 ('') 括住路徑引數。
語法
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
範例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive
若要複製到容器內的目錄,只需在命令字串中指定該目錄的名稱即可。
範例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive
如果您指定容器中不存在的目錄名稱,AzCopy 會建立具有該名稱的新目錄。
上傳目錄內容
使用 azcopy copy 命令上傳目錄內容。 使用萬用字元符號 (*) 上傳內容,而不復制包含的目錄本身。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令命令命令殼 (cmd.exe),請以雙引號 (“”)而不是單引號 ('') 括住路徑引數。
語法
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'
範例
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'
附加 --recursive 旗標以上傳所有子目錄中的檔案。
上傳特定檔案
您可以使用完整檔案名稱、含萬用字元 (*) 的部分名稱,或使用日期和時間來上傳特定檔案。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數而非單引號 ('')。
指定多個完整檔案名稱
使用 azcopy copy 命令搭配 --include-path 選項。 使用分號 (;) 來分隔各個檔案名稱。
語法
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>
範例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
在此範例中,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>.<blob or dfs>.core.windows.net/<container-name>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>
範例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
您也可以使用 --exclude-pattern 選項來排除檔案。 若要深入了解,請參閱 azcopy copy 參考文件。
--include-pattern 和 --exclude-pattern 選項只適用於檔案名稱,不適用於路徑。 如果您想要複製存在於目錄樹狀結構中的所有文字檔案,請使用 -recursive 選項取得整個目錄樹狀結構,然後使用 -include-pattern 並指定 *.txt 來取得所有文字檔。
上傳於某日期和時間之前或之後修改過的檔案
使用 azcopy copy 命令搭配 --include-before 或 --include-after 選項。 以 ISO-8601 格式指定日期和時間 (例如: 2020-08-19T15:04:00Z)。
下列範例會上傳於指定日期或該日之後修改過的檔案。
語法
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' --include-after <Date-Time-in-ISO-8601-format>
範例
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
範例 (Data Lake Storage 端點)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
如需詳細參考資料,請參閱 azcopy copy 參考文件。
使用索引標記上傳
您可以上傳檔案,並將 Blob 索引標記 新增至目標 Blob。
如果您使用 Microsoft Entra 授權,請將儲存體 Blob 資料擁有者角色指派給您的安全性主體,或透過自訂 Azure 角色授與 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write的權限。 如果您使用共用存取簽章 (SAS) 權杖,該權杖必須透過 t SAS 權限提供 Blob 標記的存取權。
若要新增標籤,請將該 --blob-tags 選項與 URL 編碼的索引鍵值組搭配使用。
例如,若要在目的地參數中新增索引鍵 my tag 和值 my tag value,請將 --blob-tags='my%20tag=my%20tag%20value' 包含在內。
使用&符號(my second tag 和值 my second tag value,完整的選項字串是 --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'。
下列範例顯示如何使用 --blob-tags 選項。
秘訣
這些範例使用單引號 ('') 括住路徑引數。 除了 Windows 命令殼層 (cmd.exe) 以外,在所有命令殼層中使用單引號。 如果您使用 Windows 命令命令命令殼 (cmd.exe),請以雙引號 (“”)而不是單引號 ('') 括住路徑引數。
上傳檔案
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
上傳目錄
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
上傳目錄內容
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
附註
如果您指定來源的目錄,則您複製到目的地的所有 Blob 都會具有您在命令中指定的相同標籤。
使用選用的旗標上傳
您可以使用選用的旗標來調整上傳作業。 以下提供數個範例。
| 狀況 | 旗標 |
|---|---|
| 以附加 Blob 或分頁 Blob 的形式上傳檔案。 | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
| 上傳至特定存取層 (例如封存層)。 | --block-blob-tier=[None|Hot|Cool|Archive] |
如需完整的清單,請參閱選項。
指定來源和目的地類型
AzCopy 會使用參數 --from-to 來明確定義自動偵測可能失敗時的來源和目的地資源類型,例如在管道案例或模擬器中。 此參數可協助 AzCopy 瞭解傳輸的內容,並據以最佳化。
| FromTo 值 | Description |
|---|---|
LocalBlob |
從本機檔案系統上傳至 Azure Blob 儲存體 |
LocalBlobFS |
從本機檔案系統上傳至 Azure Data Lake Gen2 (BlobFS) |
PipeBlob |
將資料從管道串流到 Azure Blob 儲存體 |
PipeFile |
將資料從管道串流到 Azure 檔案儲存體 |
後續步驟
如需更多範例,請參閱以下文章:
請參閱下列文章,以進行設定、將效能最佳化,以及針對問題進行疑難排解: