Azure Storage 利用 azCopy 复制迁移数据

一,引言

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

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

上一篇:Java知识点7——线程池、Lambda表达式


下一篇:前端实现视频直链下载