The Will Will Web | 如何利用 AzCopy 同步本機磁碟與 Azure Blob Storage 檔案

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何利用 AzCopy 同步本機磁碟與 Azure Blob Storage 檔案

最近在協助客戶將 Amazon S3 上面的檔案遷移到 Windows Azure Storage (Blob),在我的前一篇文章已經提到如何便利的從 Amazon S3 同步到本機磁碟,今天我將分享如何透過微軟提供的免費工具 AzCopy 幫我們快速達成上傳、下載、同步等工作,也是一套兼具方便性與效能的檔案同步工具,同步檔案時,他一樣不會傳輸那些已經同步過且無異動的檔案,讓我們一起來看看如何使用吧!

當你安裝過 Windows Azure SDK 或命令列工具支援,就可以在程式集中找到 Windows Azure Storage command line 捷徑,透過這個捷徑可以開啟一個能讓你執行 AzCopy 指令的命令提示字元視窗。

你可以利用 where azcopy 命令找到該執行檔所在實際位置,執行 azcopy /? 可以看到完整使用說明:

找到 AzCopy 執行檔之後,使用方式真的是簡單到不能再簡單,一個最基本的用法,就是直接指定來源目的即可自動完成檔案同步工作。以下幾個使用情境與相對應的指令供各位參考:

1. 將本地資料夾所有檔案(含子目錄)全部上傳到Azure Blob Storage,而且會判斷不要同步比 Azure Blob Storage 來舊的檔案,也就是如果 Azure Blob Storage 檔案有更新過時,不會複製檔案上去。

AzCopy G:\TEMP https://YOUR_URL/CONTAINER/vPath /DestKey:KEY /S /XO /Z

上述指令,藍字部份都是你要修改的,而 /DestKey 代表的是你目的端的 Storage Account 的存取金鑰。

  • /S  代表複製所有指定目錄與其所有子目錄的所有檔案
  • /XO 代表當你從來源複製到目的時,排除那些比目的端舊的檔案 ( Exclude Older )
  • /Z  讓你本次的同步工作進入所謂 Restartable mode,他會記錄同步檔案的過程,並寫入一個 AzCopy.log 暫存檔案中,當你同步過程發生網路問題,下次執行相同的指令會自動在上次執行到一半的地方開始同步檔案!

2. 將 Azure Blob Stroage 上面的檔案全部下載回來

以下指令跟上述指令的差別,僅把來源與目的交換,然後把 /DestKey 換成 /SourceKey 而已。

AzCopy https://YOUR_URL/CONTAINER/vPath G:\TEMP /SourceKey:KEY /S /XO /Z

3. 利用 AzCopy 在兩個不同的 Storage 儲存帳戶搬移檔案

這部分基本上還算簡單,就是你的來源與目的都是 BLOB_URL 而已,但有些額外的參數可以了解,詳細資訊可參考 AzCopy – Using Cross Account Copy Blob 這篇文章。
( 這部分建議在 Windows Azure 上的 VM 執行,以節省頻寬費用 )

相關連結