上一篇介绍了AzCopy两个实际的使用场景,可以说对于azure blob的操作绝对是相当简便的,但是现在AzCopy已经不仅仅局限于Azure的操作了,我们还可以用AzCopy把S3的数据迁移过来,这对于像AWS迁移Azure的项目来说绝对是个相当好用的工具,不过目前这个功能还只是preview版本,要注意验证下迁移的结果再删除源端的数据
具体的使用方法和blob之间拷贝数据稍有不同,主要在于身份验证的方式有所区别
-
若要使用 Azure 存储授权,请使用 Azure Active Directory (AD)或共享访问签名(SAS)令牌。
-
若要使用 AWS S3 进行授权,请使用 AWS 访问密钥和密钥访问密钥
所以S3进行授权的时候是直接用AK/SK做授权的
AWS AK/SK的创建方式这里就不详细说了,直接来看下怎么设置AK/SK来让azcopy能识别到
AzCopy其实是会直接读取环境变量里两个固定的名称的,分别是
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_ACCESS_KEY
以PowerShell环境举例,我们可以用以下方法设置环境变量
$env:AWS_ACCESS_KEY_ID=”xxx”
$env:AWS_SECRET_ACCESS_KEY=”xxxx”
将xxx替换为实际的值即可,这种方法设置的环境变量都只是临时变量,关闭PowerShell会话就会消失,这也是比较符合实际情况的,这种非常敏感的信息当然也不适合长时间保存
我们可以使用azcopy env来验证下是否可以正确读取到环境变量
只要这里能读取出来数值,就代表环境变量的设置没有问题了
目标端Azure我们就直接使用Azure AD验证了,具体的操作步骤就不多说了
下边来看下如何进行S3的迁移,AzCopy可以支持很多种S3对象,包括以下等
-
对象
-
目录
-
bucket
-
多个bucket
语法基本是差不多的,主要来看下对象和目录的迁移
对象迁移
Azcopy copy ‘https://xxx.s3.cn-north-1.amazonaws.com.cn/CBB_EC2AMAZ-R566F8E/CBB_Cloud/obs2s3000001/haozip_v5.9.8.exe’ ‘https://xxx.blob.core.chinacloudapi.cn/aws/haozip_froms3.exe’
这里如果出现下边的报错,就证明是环境变量的设置有问题
正常输出的结果如下:
在blob里马上就可以看到数据了
整体语法和blob之间进行操作还是很一致的
目录迁移
目录的迁移和blob迁移目录基本也是一样的,只需要加一个额外的参数即可
Azcopy copy ‘https://xxx.s3.cn-north-1.amazonaws.com.cn/CBB_EC2AMAZ-R566F8E/CBB_Cloud/obs2s3000001/15090887278028_sow.exe%24’ ‘https://xxx.blob.core.chinacloudapi.cn/aws/’ –recursive=true
可以看到整个目录都迁过来了!
依次类推,还可以迁移整个bucket,这对于迁移来说就太方便了
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/182388.html