【发布时间】:2022-01-10 19:16:32
【问题描述】:
北京(中国)地区非常独特,因为它几乎所有的东西都是独立的(来自 AWS 全球)。例如,要使用 AWS CLI 列出我们必须指定 region 和 endpoint-url 的对象:
aws --region cn-north-1 \
--endpoint-url https://s3.cn-north-1.amazonaws.com.cn \
--profile AN_AWS_CN_PROFILE \
s3 ls s3://AN_AWS_CN_BUCKET/
我的问题是如何在北京(中国)存储桶和全球存储桶之间同步数据?首先,使用上面指定的region 和endpoint-url 无法识别全局存储桶。例如,
aws --region cn-north-1 \
--endpoint-url https://s3.cn-north-1.amazonaws.com.cn \
--profile AN_AWS_CN_PROFILE \
s3 cp s3://AN_AWS_CN_BUCKET/ s3://AN_AWS_IRELAND_BUCKET/
会给
致命错误:调用ListObjects操作时发生错误(NoSuchBucket):指定的bucket不存在
(目标存储桶确实存在。)
到目前为止,我已经探索了 CLI 参数和 .aws/config 文件来定义配置文件。也许可以在单个命令中使用多个profile,但似乎无法在.aws/config 中配置endpoint-url,因为没有提及here。
现在我只是将文件复制到本地然后上传,随着数据集的快速增长,这将成为一个问题。使用 EMR 可以解决扩展问题,但会增加额外的复杂性。我想知道是否有更好且可能更简单的解决方案?谢谢。
【问题讨论】:
-
问题的核心是S3内部具有跨区域复制能力(从而避免了任何本地下载/上传的需要)......以及
aws分区中的所有S3区域S3 知道所有其他存储桶在哪个区域,以及如何进行跨区域复制。当然,aws-cn分区不是同一个分区,因此向任何一方提出的请求都会假设两个存储桶都在同一个分区中,并且找不到一个或另一个。我看到的问题与该工具是否可以下载/上传有关,而不是内部跨区域,因为没有“内部”路径。
标签: amazon-web-services amazon-s3