一,引言
前兩天遇到了Azure Blob Storage 需要遷移到另外的一個 Azure Blob Storage 中。手動下載、上傳已經無法滿足了,得另尋一種方式了 AzCopy。Azure 為我們提供了 AzCopy,它其實是一個命令列實用工具,可用於向/從儲存賬戶複製 Blob 或檔案。 使用 AzCopy 可在檔案系統和儲存帳戶之間或在儲存帳戶之間複製資料。 AzCopy 可以用來將資料從本地複製到儲存帳戶。好的,廢話不多說了。那麼我們就正式開始今天講解的內容了。
二,正文
1,設定datasource ----- Azure Blob Storage
我們提前準備好開發環境的 Storage Account ----- "cnbateblogwebdev"
選擇 “Data storage =》Container”,點選 “+Container” 新增新的Container----- "images"
點選進入當前容器,上傳我們需要測試的檔案
選擇本地的測試檔案 “Backgroud.jpg”,點選 “Upload” 進行上傳操作
上傳完畢之後,就可以看到已上傳的圖片檔案
預覽 “Backgroup.jpg” 檔案
接下來設定開發環境的 Blob Storage 的 “Shared access signature”(共享訪問簽名)
選擇 “Security + networking =》Shared access signature”
Allowed services 選擇: “Blob”
Allow resource types 選擇:“Service”,“Container”,“Object”
點選 “Generate SAS and connection string” 生成共享訪問簽名
可以看到 Blob Service SAS URL 已經生成出來了,複製儲存,稍後有用。
2,設定datatarget ----- Azure Blob Storage
生產環境的 Storage Account ----- "cnbateblogwebprd"
選擇 “Data storage =》Container”,點選 “+Container” 新增生產環境新的Container----- "images"
同樣的也需要生成生產環境的 Blob Storage 的共享訪問簽名
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 中執行,我們可以看到執行完成
同時,我們可以在生產環境的Blob Storage 的 images 的容器中進行檢視
TestCase2:將開發環境的 Blob Storage Account 容器中的所有的物件檔案遷移到 生產環境的 Blob Storage Account
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 Portal 上檢視測試結果
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
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。