所以我的存储桶Alpha
位于一个名为的区域中REGION1
。
我的存储桶Beta
位于不同的区域,我们称之为REGION2
。
我进入我的 EC2 实例并使用此命令:
aws s3 cp s3://Alpha/meh.txt ./meh.txt
成功了!到目前为止一切顺利。运行完美。
但是,当我执行这个命令时:
aws s3 cp s3://Beta/qwe.txt ./qwe.txt
我收到以下错误消息:
fatal error: An error occurred (400) when calling the HeadObject operation: Bad Request
上述错误只有指定区域标志才能修复。为什么会这样?因为我认为无论区域如何,存储桶名称都是唯一的,那么为什么我需要指定区域?
有没有办法在不指定区域的情况下阻止这种情况发生?也许是特殊政策之类的?
谢谢。
答案1
只有 AWS 知道这个问题的答案。AWS 可以取消此要求,但我猜他们希望你明确说明。
自动执行起来非常简单。当客户端收到对存储桶的请求时,中央查找服务可以确定存储桶区域并将请求发送到那里。然而,这会产生单点故障。您可以通过在每个区域运行查找服务并将所有端点放在客户端中来解决这个问题,但这需要更多的代码、更多的配置、更多的服务运行、更多的服务占用 CPU。
如果他们不想运行查找服务,那么请求就必须通过代理到您所在地区的中心点。这会占用 CPU 和带宽。
指定区域可能比其他选项更容易、更有效。