一,引言
前两天遇到了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
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。