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