如何用PowerShell的Az CLI将Azure存储的.bacpac复制到AWS S3?是否需双平台登录?
将Azure存储的.bacpac文件复制到AWS S3存储桶的操作指南
是的,必须同时完成Azure和AWS的身份验证——因为你需要读取Azure存储中的文件,同时向AWS S3存储桶写入数据,两边的服务都需要验证你的操作权限。
以下是具体操作步骤:
1. 登录Azure(使用Az CLI)
在PowerShell中执行命令完成Azure身份验证:
az login
按照提示在浏览器中完成登录即可。如果你的账号关联多个Azure订阅,需指定目标订阅:
az account set --subscription "你的订阅ID/订阅名称"
2. 生成Azure存储文件的临时SAS访问链接
Az CLI无法直接跨云推送文件到S3,因此需要先生成一个带读取权限的临时SAS链接,用于获取.bacpac文件内容:
# 设置SAS链接有效期(示例为2小时,可按需调整) $expiryDate = (Get-Date).AddHours(2).ToString("yyyy-MM-ddTHH:mm:ssZ") # 生成SAS令牌 $sasToken = az storage blob generate-sas --account-name 你的存储账户名 --container-name 你的容器名 --name 目标文件.bacpac --permissions r --expiry $expiryDate --output tsv # 拼接完整的文件访问URL $sourceUrl = "https://你的存储账户名.blob.core.windows.net/你的容器名/目标文件.bacpac?$sasToken"
3. 配置AWS身份验证
在PowerShell中配置AWS凭证,执行:
aws configure
按照提示依次输入你的AWS Access Key ID、Secret Access Key、默认区域(如us-east-1)和输出格式(可选,如json)。
如果不想持久化保存凭证,也可以临时设置环境变量:
$env:AWS_ACCESS_KEY_ID = "你的AWS Access Key ID" $env:AWS_SECRET_ACCESS_KEY = "你的AWS Secret Access Key" $env:AWS_DEFAULT_REGION = "你的目标S3区域"
4. 复制文件到S3存储桶
使用AWS CLI的s3 cp命令完成跨云复制:
aws s3 cp $sourceUrl s3://你的S3桶名/目标路径/目标文件.bacpac
替换命令中的桶名和目标路径为你的实际信息。
可选:验证复制结果
执行以下命令检查S3桶中的文件是否存在:
aws s3 ls s3://你的S3桶名/目标路径/
内容的提问来源于stack exchange,提问作者Sally
相关产品推荐
相关产品推荐

