The Will Will Web

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

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

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

新版 AzCopy v10 教學請見新版文章:使用新版 AzCopy v10 的注意事項與使用教學

當你安裝過 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 執行,以節省頻寬費用 )

相關連結

留言評論