如何从Azure Storage直接复制150G文件到AWS S3以降低成本?
Azure Storage到AWS S3直接复制的成本优化方案
核心结论
可以通过Azure CLI和AWS CLI实现Azure Storage到AWS S3的直接复制,第二种流程确实能减少一次收费环节——仅产生Azure Storage到AWS的跨云出站流量费用,避免了本地中转带来的双重流量成本。
具体实现步骤
生成Azure Blob的临时访问SAS令牌
使用Azure CLI生成只读权限的SAS令牌,确保AWS能读取目标Blob:az storage blob generate-sas \ --account-name <你的Azure存储账户名> \ --container-name <Blob容器名> \ --name <目标Blob文件名> \ --permissions r \ --expiry "2024-12-31T23:59:59Z" \ --output tsv替换占位参数,
--expiry设置合理过期时间,避免令牌长期有效带来风险。拼接完整的Blob访问URL
将生成的SAS令牌拼接到Blob基础URL后,形成可直接访问的地址:https://<你的Azure存储账户名>.blob.core.windows.net/<Blob容器名>/<目标Blob文件名>?<生成的SAS令牌>使用AWS CLI直接复制到S3
调用AWS CLI的s3 cp命令,直接从Azure Blob的SAS URL复制到目标S3桶:aws s3 cp "<完整的Azure Blob SAS URL>" s3://<你的S3桶名>/<目标文件名>针对150G的大文件,可添加分片参数提升稳定性:
aws s3 cp "<完整的Azure Blob SAS URL>" s3://<你的S3桶名>/<目标文件名> --multipart-chunk-size 10GB
成本对比分析
- 本地中转流程:产生两次流量费用——Azure Storage到本地的出站流量费 + 本地到AWS S3的出站流量费(还会占用本地带宽)。
- 直接复制流程:仅产生Azure Storage到AWS的跨云出站流量费,无中转环节的额外成本,确实减少了一次收费环节。
注意事项
- SAS令牌仅授予只读权限,遵循最小权限原则,降低数据泄露风险。
- 确保AWS CLI已配置目标S3桶的写入权限。
- 大文件复制建议在云服务器(如AWS EC2或Azure VM)上执行,避免本地网络波动导致失败,部分云服务器的出站流量成本可能更低。
内容的提问来源于stack exchange,提问作者Melissa
相关产品推荐
相关产品推荐

