Azure Storage 利用 azCopy 複製遷移資料

Grant_Allen發表於2021-05-18

一,引言

     前兩天遇到了Azure Blob Storage 需要遷移到另外的一個 Azure Blob Storage 中。手動下載、上傳已經無法滿足了,得另尋一種方式了 AzCopy。Azure 為我們提供了 AzCopy,它其實是一個命令列實用工具,可用於向/從儲存賬戶複製 Blob 或檔案。 使用 AzCopy 可在檔案系統和儲存帳戶之間或在儲存帳戶之間複製資料。 AzCopy 可以用來將資料從本地複製到儲存帳戶。好的,廢話不多說了。那麼我們就正式開始今天講解的內容了。

二,正文

1,設定datasource ----- Azure Blob Storage

我們提前準備好開發環境的 Storage Account ----- "cnbateblogwebdev"

Azure Storage 利用 azCopy 複製遷移資料

選擇 “Data storage =》Container”,點選 “+Container” 新增新的Container----- "images"

Azure Storage 利用 azCopy 複製遷移資料

點選進入當前容器,上傳我們需要測試的檔案

Azure Storage 利用 azCopy 複製遷移資料

選擇本地的測試檔案 “Backgroud.jpg”,點選 “Upload” 進行上傳操作

Azure Storage 利用 azCopy 複製遷移資料

上傳完畢之後,就可以看到已上傳的圖片檔案

Azure Storage 利用 azCopy 複製遷移資料

預覽 “Backgroup.jpg” 檔案

Azure Storage 利用 azCopy 複製遷移資料

接下來設定開發環境的 Blob Storage 的 “Shared access signature”(共享訪問簽名)

選擇 “Security + networking =》Shared access signature”

Allowed services 選擇: “Blob”

Allow resource types 選擇:“Service”,“Container”,“Object”

點選 “Generate SAS  and connection string” 生成共享訪問簽名

Azure Storage 利用 azCopy 複製遷移資料

可以看到 Blob Service SAS URL 已經生成出來了,複製儲存,稍後有用。

Azure Storage 利用 azCopy 複製遷移資料

2,設定datatarget ----- Azure Blob Storage

生產環境的 Storage Account ----- "cnbateblogwebprd"

Azure Storage 利用 azCopy 複製遷移資料

選擇 “Data storage =》Container”,點選 “+Container” 新增生產環境新的Container----- "images"

Azure Storage 利用 azCopy 複製遷移資料

同樣的也需要生成生產環境的 Blob Storage 的共享訪問簽名

Azure Storage 利用 azCopy 複製遷移資料

3,使用 AzCopy 遷移資料

重啟一個Azure Cloud Shell 頁面,shell.azure.com

TestCase1:將開發環境的 Blob Storage Account 容器中的 背景圖片遷移到 生產環境的 Blob Storage Account

azcopy copy <source> <target>

<source> 就是我們需要遷移資料的資料來源,這個需要剛剛複製的開發環境的Storage Account 的共享訪問簽名了,紅色標記的就是要簽約的資料的容器名和物件名

https://cnbateblogwebdev.blob.core.windows.net/images/Background.jpg?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:33:24Z&st=2021-05-18T09:33:24Z&spr=https&sig=4w%2FBAwCzWNkfNQHhWJaehjE3OC4biXXXXXXXMMHOMT0I%3D

<tartget>同樣的生產的的目標資料來源,紅色標記的就是要簽約的資料的容器名和物件名

https://cnbateblogwebprd.blob.core.windows.net/images/Background_Pro.jpg?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:06:32Z&st=2021-05-18T09:06:32Z&spr=https&sig=0L8u5ZtndP42Jt0WuB0bQp%2BBT0jR3c%2BXXXXXXXXX1V8Vk4%3D

FullExample:

azcopy copy "https://cnbateblogwebdev.blob.core.windows.net/images/Background.jpg?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:33:24Z&st=2021-05-18T09:33:24Z&spr=https&sig=4w%2FXXXXXCzWNkfNQHhWJaehjE3OC4bi3mEkMeMMHOMT0I%3D"  "https://cnbateblogwebprd.blob.core.windows.net/images/Background_Pro.jpg?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:06:32Z&st=2021-05-18T09:06:32Z&spr=https&sig=0L8u5ZtndP42Jt0WXXXXXXp%2BBT0jR3c%2BYAlH7X1V8Vk4%3D"

複製貼上到Azure Cloud Shell 中執行,我們可以看到執行完成

Azure Storage 利用 azCopy 複製遷移資料

同時,我們可以在生產環境的Blob Storage 的 images 的容器中進行檢視

Azure Storage 利用 azCopy 複製遷移資料

TestCase2:將開發環境的 Blob Storage Account 容器中的所有的物件檔案遷移到 生產環境的 Blob Storage Account

Azure Storage 利用 azCopy 複製遷移資料

FullExample:

azcopy copy "https://cnbateblogwebdev.blob.core.windows.net/images/*?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:33:24Z&st=2021-05-18T09:33:24Z&spr=https&sig=4w%2FBAwCzWNkfNQHhWJaxxxxxxOC4bi3mEkMeMMHOMT0I%3D"  "https://cnbateblogwebprd.blob.core.windows.net/images/?sv=2020-02-10&ss=b&srt=sco&sp=rwdlacx&se=2021-05-18T17:06:32Z&st=2021-05-18T09:06:32Z&spr=https&sig=0L8u5ZtndP42Jxxxxxx0bQp%2BBT0jR3c%2BYAlH7X1V8Vk4%3D"

複製貼上到Azure Cloud Shell 中執行,我們可以看到執行完成

Azure Storage 利用 azCopy 複製遷移資料

Azure Portal 上檢視測試結果

Azure Storage 利用 azCopy 複製遷移資料

bingo!!!!成功。

三,結尾

AzCopy 支援多種型別的複製方式將源資料遷移到目標位置。例如 "本地"=》“Azure Blob”,“本地”=》“Azure 檔案儲存”,“Azure Blob”=》“Azure Blob”,“Azure 檔案儲存”=》“Azure 檔案儲存”等等。並且還支援多雲資料遷移,例如 “AWS S3”=》“Azure Block Blob”,“GCP Cloud Storage”=》“Azure Block Blob”。

AzCopy 是一個命令列工具,我們藉助該工具,可使用簡單命令以最佳效能將資料複製到 Azure Blob 儲存、Azure 檔案和 Azure 表儲存或從其中複製出資料。 這些命令旨在。

參考連結:https://docs.azure.cn/zh-cn/storage/common/storage-ref-azcopy-copy

文章來自博主本人自己的部落格:https://allenmasters.com/post/2021/5/18/azure-storage-azcopy

歡迎大家關注博主的部落格:https://allenmasters.com/

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章