千家信息网

​Azure Storage系列之使用AzCopy迁移S3数

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,上一篇介绍了AzCopy两个实际的使用场景,可以说对于azure blob的操作绝对是相当简便的,但是现在AzCopy已经不仅仅局限于Azure的操作了,我们还可以用AzCopy把S3的数据迁移过来,
千家信息网最后更新 2025年01月22日​Azure Storage系列之使用AzCopy迁移S3数

上一篇介绍了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其实是会直接读取环境变量里两个固定的名称的,分别是

  1. AWS_ACCESS_KEY_ID

  2. 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对象,包括以下等

  1. 对象

  2. 目录

  3. bucket

  4. 多个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,这对于迁移来说就太方便了


0