開始使用 AzCopy
AzCopy 是命令列公用程式,可讓您在儲存體帳戶之間複製 Blob 或檔案。 本文可協助您下載 AzCopy、連線到您的儲存體帳戶,然後傳輸資料。
注意
AzCopy V10 是目前支援的 AzCopy 版本。 此工具在不再正式維護的 Windows、Linux 或 macOS 版本上不受支援。
如果您需要使用舊版的 AzCopy,請參閱本文中使用舊版的 AzCopy 一節。
下列各節也會說明影片中的步驟。
AzCopy 的使用案例
AzCopy 可用來將資料複製到 Azure 儲存體帳戶、從 Azure 儲存體帳戶複製出資料,以及在 Azure 儲存體帳戶之間複製資料。 常見使用案例包括:
- 將資料從內部部署來源複製到 Azure 儲存體帳戶
- 將資料從 Azure 儲存體帳戶複製到內部部署來源
- 將資料從某個儲存體帳戶複製到另一個儲存體帳戶
上述每個使用案例各有獨特的選項。 例如,AzCopy 有可用於複製和/或同步處理資料的原生命令。 此一特性讓 AzCopy 成為可用於一次性複製活動和進行中同步處理案例的彈性工具。 AzCopy 也可讓您將特定儲存體服務作為目標,例如 Azure Blob 儲存體或 Azure 檔案儲存體。 這可讓您將資料從 Blob 複製到檔案、從檔案複製到 Blob、從檔案複製到檔案等等。
若要深入了解這些案例,請參閱:
- 使用 AzCopy 將檔案上傳到 Azure Blob 儲存體
- 使用 AzCopy 從 Azure Blob 儲存體下載 Blob
- 使用 AzCopy 在 Azure 儲存體帳戶之間複製 Blob
- 使用 AzCopy 來與 Azure Blob 儲存體同步
注意
AzCopy 不支援會在傳輸期間主動變更來源或目的地的案例。
使用套件管理員在 Linux 上安裝 AzCopy
您可以使用裝載於適用於 Microsoft 產品的 Linux 軟體存放庫上的 Linux 套件來安裝 AzCopy。
下載存放庫組態套件。
重要
請務必以適當的字串取代散發套件和版本。
curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.rpm
安裝存放庫組態套件。
sudo rpm -i packages-microsoft-prod.rpm
安裝存放庫組態套件之後,請加以刪除。
rm packages-microsoft-prod.rpm
更新套件索引檔案。
sudo dnf update
安裝 AzCopy。
sudo dnf install azcopy
下載 AzCopy 可攜式二進位檔
除了安裝套件之外,您也可以將 AzCopy V10 可執行檔下載到您電腦上的任何目錄。
- Windows 64 位元 (zip)
- Windows 32 位元 (zip)
- Linux x86-64 (tar)
- Linux ARM64 (tar)
- macOS (zip)
- macOS ARM64 Preview (zip)
這些檔案會壓縮成 zip 檔案 (Windows 和 Mac) 或 tar 檔案 (Linux)。 若要下載並解壓縮 Linux 上的 tar 檔案,請參閱您 Linux 發行版本的文件。
如需 AzCopy 發行版本的詳細資訊,請參閱 AzCopy 版本頁面 (英文)。
注意
如果您想要將資料複製到 Azure 資料表儲存體服務 (或反向操作),則請安裝 AzCopy 7.3 版。
執行 AzCopy
為了方便起見,請考慮將 AzCopy 可執行檔的目錄位置新增至您的系統路徑,以方便使用。 如此一來,您就可以從系統上的任何目錄輸入 azcopy
。
如果您選擇不要將 AzCopy 目錄新增至您的路徑,則必須將目錄變更為 AzCopy 可執行檔的位置,並在 Windows PowerShell 命令提示字元中輸入 azcopy
或 .\azcopy
。
身為 Azure 儲存體帳戶擁有者的您,並不會自動收到指派的資料存取權限。 您必須先決定要如何為儲存體服務提供授權認證,才能使用 AzCopy 來進行任何有意義的動作。
授權 AzCopy
您可以使用 Microsoft Entra ID 或使用共用存取簽章 (SAS) 權杖提供授權認證。
選項 1:使用 Microsoft Entra ID
藉由使用 Microsoft Entra ID,您可以提供一次認證,而不需要將 SAS 權杖附加至每個命令。
選項 2:使用 SAS 權杖
您可以將 SAS 權杖附加至每個在 AzCopy 命令中使用的來源或目的地 URL。
此範例命令會以遞迴方式將資料從本機目錄複寫到 Blob 容器。 虛構的 SAS 權杖會附加至容器 URL 的結尾。
azcopy copy "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true
若要深入瞭解 SAS 權杖,以及如何取得 SAS 權杖,請參閱使用共用存取簽章 (SAS)。
注意
儲存體帳戶的需要安全傳輸設定會決定是否要使用傳輸層安全性 (TLS) 來保護儲存體帳戶的連線。 此設定預設為啟用狀態。
傳輸資料
授權您的身分識別或取得 SAS 權杖之後,您就可以開始傳輸資料。
若要尋找範例命令,請參閱這些文章。
服務 | 發行項 |
---|---|
Azure Blob 儲存體 | 將檔案上傳至 Azure Blob 儲存體 |
Azure Blob 儲存體 | 從 Azure Blob 儲存體下載 Blob |
Azure Blob 儲存體 | 在 Azure 儲存體帳戶間複製 Blob |
Azure Blob 儲存體 | 與 Azure Blob 儲存體同步處理 |
Azure 檔案儲存體 | 使用 AzCopy 和檔案儲存體傳輸資料 (機器翻譯) |
Amazon S3 | 將資料從 Amazon S3 遷移到 Azure 儲存體 |
Google Cloud Storage | 將資料從 Google Cloud Storage 複製到 Azure 儲存體 (預覽版) |
Azure Stack 儲存體 | 使用 AzCopy 和 Azure Stack 儲存體轉送資料 |
取得命令說明
若要查看命令清單,請輸入 azcopy -h
,然後按 ENTER 鍵。
若要了解特定的命令,只需包含命令的名稱 (例如:azcopy list -h
)。
命令清單
下表列出所有 AzCopy v10 命令。 每個命令都會連結至參考文章。
Command | 描述 |
---|---|
azcopy bench | 透過將測試資料上傳至指定位置或從中下載來執行效能評定。 |
azcopy copy | 將來源資料複製到目的地位置 |
azcopy doc | 為工具產生格式為 Markdown 的文件。 |
azcopy env | 顯示可以設定 AzCopy 行為的環境變數。 |
azcopy jobs | 與管理作業相關的子命令。 |
azcopy jobs clean | 移除所有工作的全部記錄檔和計畫檔案。 |
azcopy jobs list | 顯示所有作業的資訊。 |
azcopy jobs remove | 移除與指定作業識別碼建立關聯的所有檔案。 |
azcopy jobs resume | 使用指定的作業識別碼來繼續現有作業。 |
azcopy jobs show | 顯示指定作業識別碼的詳細資訊。 |
azcopy list | 列出指定資源中的實體。 |
azcopy login | 登入 Microsoft Entra ID 以存取 Azure 儲存體資源。 |
azcopy login status | 列出指定資源中的實體。 |
azcopy logout | 將使用者登出,並終止存取 Azure 儲存體資源的權限。 |
azcopy make | 建立容器或檔案共用。 |
azcopy remove | 從 Azure 儲存體帳戶中刪除 Blob 或檔案。 |
azcopy sync | 將來源位置複製到目的地位置。 |
azcopy 設定屬性 | 變更一或多個 Blob 的存取層,並取代 (覆寫) 中繼資料,以及一或多個 Blob 的索引標籤。 |
注意
AzCopy 沒有可重新命名檔案的命令。
用在指令碼中
取得靜態下載連結
經過一段時間後,AzCopy 下載連結 會指向 AzCopy 的新版本。 如果您的指令碼下載 AzCopy,當較新版本的 AzCopy 修改指令碼所依賴的功能時,指令碼可能會停止運作。
若要避免這些問題,請取得 AzCopy 目前的版本的靜態 (不變) 連結。 如此一來,您的指令碼會在每次執行時下載相同的 AzCopy 版本。
若要取得連結,請執行下列命令:
作業系統 | Command |
---|---|
Linux | curl -s -D- https://aka.ms/downloadazcopy-v10-linux \| grep ^Location |
Windows PowerShell | (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue).headers.location |
PowerShell 6.1+ | (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue -SkipHttpErrorCheck).headers.location |
注意
若是 Linux,tar
命令上的 --strip-components=1
會移除包含版本名稱的最上層資料夾,並改為將二進位檔直接解壓縮到目前的資料夾中。 這可讓您只更新 wget
URL 來更新指令碼的 azcopy
新版本。
URL 會出現在此命令的輸出中。 然後,您的指令碼就可以使用該 URL 來下載 AzCopy。
Linux
wget -O azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux && tar -xf azcopy_v10.tar.gz --strip-components=1
Windows PowerShell
Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\'
$AzCopy = (Get-ChildItem -path '.\' -Recurse -File -Filter 'azcopy.exe').FullName
# Invoke AzCopy
& $AzCopy
PowerShell 6.1+
Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
$AzCopy = (Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\' -PassThru | where-object {$_.Name -eq 'azcopy.exe'}).FullName
# Invoke AzCopy
& $AzCopy
在 SAS 權杖中的 Escape 特殊字元
在副檔名為 .cmd
的批次檔中,您必須將出現在 SAS 權杖中的 %
字元進行換用。 若要這麼做,您可以在 SAS 權杖字串中的現有 %
字元旁新增額外的 %
字元。 產生的字元序列會顯示為 %%
。 請確保在每個 &
字元前新增額外的 ^
,建立字元序列 ^&
。
使用 Jenkins 執行指令碼
如果您打算使用 Jenkins 來執行指令碼,請務必在指令碼的開頭放置下列命令。
/usr/bin/keyctl new_session
在 Azure 儲存體總管中使用
儲存體總管使用 AzCopy 來執行其所有資料傳輸作業。 如果您想要利用 AzCopy 的效能優勢,但想要使用圖形化使用者介面而非命令列來與檔案互動,則可以使用儲存體總管。
儲存體總管會使用您的帳戶金鑰來執行操作,因此在您登入儲存體總管之後,就不需要提供額外的授權認證。
設定、優化和修正
請參閱下列任何資源:
使用舊版 (已取代)
如果您需要使用先前版本的 AzCopy,請參閱下列其中一個連結:
注意
這些 AzCopy 版本已被取代。 Microsoft 建議使用 AzCopy v10。
下一步
如果您有疑問、問題或一般意見反應,請在 GitHub (英文) 頁面上加以提交。