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 的共享訪問簽名了,紅色標記的就是要簽約的數據的容器名和對象名

//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>同樣的生產的的目標數據源,紅色標記的就是要簽約的數據的容器名和對象名

//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 "//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"  "//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 "//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"  "//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 表存儲或從其中複製出數據。 這些命令旨在。

參考鏈接://docs.azure.cn/zh-cn/storage/common/storage-ref-azcopy-copy

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

歡迎大家關注部落客的部落格://allenmasters.com/

作者:Allen 

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

Tags: