開始使用 AzCopy
AzCopy 是命令列公用程式,可讓您在儲存體帳戶之間複製 Blob 或檔案。 本文可協助您下載 AzCopy、連線到您的儲存體帳戶,然後傳輸資料。
下載 AzCopy
首先,將 AzCopy V10 可執行檔下載至您電腦上的任何目錄。 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
您可以使用 Azure Active Directory (AD) 或共用存取簽章 (SAS) 權杖來提供授權認證。
請使用下表作為指南:
儲存體類型 | 目前支援的授權方法 |
---|---|
Blob 儲存體 | Azure AD & SAS |
Blob 儲存體 (階層命名空間) | Azure AD & SAS |
檔案儲存體 | 僅限 SAS |
選項 1:使用 Azure Active Directory
此選項僅適用於 Blob 儲存體。 藉由使用 Azure Active Directory,您可以提供一次認證,而不需要將 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 命令。 每個命令都會連結至參考文章。
命令 | 描述 |
---|---|
azcopy 工作台 | 透過將測試資料上傳至指定位置或從中下載來執行效能評定。 |
azcopy 複製 | 將來源資料複製到目的地位置 |
azcopy 文件 | 為工具產生格式為 Markdown 的文件。 |
azcopy 環境 | 顯示可以設定 AzCopy 行為的環境變數。 |
azcopy 作業 | 與管理作業相關的子命令。 |
azcopy 作業清除 | 移除所有工作的全部記錄檔和計畫檔案。 |
azcopy 作業清單 | 顯示所有作業的資訊。 |
azcopy 作業移除 | 移除與指定作業識別碼建立關聯的所有檔案。 |
azcopy 作業繼續 | 使用指定的作業識別碼來繼續現有作業。 |
azcopy 作業顯示 | 顯示指定作業識別碼的詳細資訊。 |
azcopy 清單 | 列出指定資源中的實體。 |
azcopy 登入 | 登入 Azure Active Directory,以存取 Azure 儲存體資源。 |
azcopy 登入狀態 | 列出指定資源中的實體。 |
azcopy 登出 | 將使用者登出,並終止存取 Azure 儲存體資源的權限。 |
azcopy 製作 | 建立容器或檔案共用。 |
azcopy 移除 | 從 Azure 儲存體帳戶中刪除 Blob 或檔案。 |
azcopy 同步 | 將來源位置複製到目的地位置。 |
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 (英文) 頁面上加以提交。