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 

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

posted @ 2021-05-18 18:26  Grant_Allen  阅读(602)  评论(1编辑  收藏  举报