共用方式為


開始使用 AzCopy

AzCopy 是命令列公用程式,可讓您在儲存體帳戶之間複製 Blob 或檔案。 本文可協助您下載 AzCopy、連線到您的儲存體帳戶,然後傳輸資料。

注意

AzCopy V10 是目前支援的 AzCopy 版本。 此工具在不再正式維護的 Windows、Linux 或 macOS 版本上不受支援。

如果您需要使用舊版的 AzCopy,請參閱本文中使用舊版的 AzCopy 一節。

本影片示範如何下載和執行 AzCopy 公用程式。

下列各節也會說明影片中的步驟。

AzCopy 的使用案例

AzCopy 可用來將資料複製到 Azure 儲存體帳戶、從 Azure 儲存體帳戶複製出資料,以及在 Azure 儲存體帳戶之間複製資料。 常見使用案例包括:

  • 將資料從內部部署來源複製到 Azure 儲存體帳戶
  • 將資料從 Azure 儲存體帳戶複製到內部部署來源
  • 將資料從某個儲存體帳戶複製到另一個儲存體帳戶

上述每個使用案例各有獨特的選項。 例如,AzCopy 有可用於複製和/或同步處理資料的原生命令。 此一特性讓 AzCopy 成為可用於一次性複製活動和進行中同步處理案例的彈性工具。 AzCopy 也可讓您將特定儲存體服務作為目標,例如 Azure Blob 儲存體或 Azure 檔案儲存體。 這可讓您將資料從 Blob 複製到檔案、從檔案複製到 Blob、從檔案複製到檔案等等。

若要深入了解這些案例,請參閱:

注意

AzCopy 不支援會在傳輸期間主動變更來源或目的地的案例。

使用套件管理員在 Linux 上安裝 AzCopy

您可以使用裝載於適用於 Microsoft 產品的 Linux 軟體存放庫上的 Linux 套件來安裝 AzCopy。

  1. 下載存放庫組態套件。

    重要

    請務必以適當的字串取代散發套件和版本。

    curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.rpm
    
  2. 安裝存放庫組態套件。

    sudo rpm -i packages-microsoft-prod.rpm
    
  3. 安裝存放庫組態套件之後,請加以刪除。

    rm packages-microsoft-prod.rpm
    
  4. 更新套件索引檔案。

    sudo dnf update
    
  5. 安裝 AzCopy。

    sudo dnf install azcopy
    

下載 AzCopy 可攜式二進位檔

除了安裝套件之外,您也可以將 AzCopy V10 可執行檔下載到您電腦上的任何目錄。

這些檔案會壓縮成 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 (英文) 頁面上加以提交。