Azure Storage系列之使用AzCopy在blob

AzCopy使用的场景其实非常多,也能帮助我们解决很多问题,这次就来分享两个不同场景下,AzCopy是如何帮我们解决问题的首先先来看下两个场景分别是什么
1.需要下载存储在Azure Global上的blob
2.需要在Azure Global和Azure China之间同步blob数据这两个都是实际的案例,首先来看第一个
背景是在Azure Global的storage上有一个60T的vhd文件,这个文件是第三方厂商公开分享的,任何人都可以直接下载,而不需要经过身份验证,而我们需要做的就是要把这个放在Global的vhd文件迁移到中国区,然后再进行部署我们尝试了很多种方法
1.直接下载 -- 速度维持在kB级别,极不稳定2.使用各大网盘和下载工具离线下载 -- 根本下不动3.使用不可描述的工具科学下载 -- 开始时速度很客观,但一段时间后速度变为0? ?
4.直接在Global Azure创建一台VM进行下载 -- 速度位置在MB级别,稳定性尚可,但等待一段时间后,下载中断以上几种方法最终都被认定为不可行,最终还是使用AzCopy解决了这个问题
首先我们先安装好azcopy,然后在中国区建一个storage和container,以存放拷贝来的数据以上这些都属于前期准备工作
之后我们就来看如何进行数据的拷贝,首先在源端和目标端都是azure blob的时候,azcopy会有一些限制必须向每个源 URL 追加一个 SAS 令牌。
如果使用 Azure Active Directory (AD)提供授权凭据,则只能从目标 URL 中省略 SAS 令牌。
所以,我们的源端必须是用SAS进行认证的,而我们的情况是源端是直接开放的,所以也不需要SAS了而目标端我们就需要使用Azure AD进行身份验证了Azure AD进行身份验证我们已经说了很多次了,具体如何操作呢,azcopy v10是可以让用户进行login的,所以这也就说明我们可以用我们的azure账户进行登录,而azure 用户现在是可以被直接赋予对blob的读写权限的,相关的role主要有以下几个Storage Blob Data Reader
Storage Blob Data Owner
Storage Blob Data Contributor
概念和常规的role有点类似吧,我们这里是需要写入文件的,所以肯定不能用reader,我们直接assign一个owner的权限
了解更多网络知识关注:http://www.vecloud.com/

