Azure Storage 利用 azCopy 複製遷移數據

一,引言

     前兩天遇到了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 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章