确定S3 Bucket Region

时间:2015-04-22 01:09:35

标签: ruby amazon-web-services amazon-s3

我正在使用AWS Ruby SDK v2来访问几个地区的各种存储桶。是否有可能在访问之前确定每个存储桶的(运行时)区域,因此我可以避免以下错误,如果我将AWS S3客户端配置错误的区域,我会得到错误?

  

您尝试访问的存储区必须使用指定的端点进行寻址。请将以后的所有请求发送到此端点。

我知道我可以使用下面的命令并解析响应,但理想情况下,我希望保留在Ruby SDK中。

  

aws s3api get-bucket-location

2 个答案:

答案 0 :(得分:5)

我无法找到任何官方文档,但是从aws-sdk spec您可以使用以下代码来获取该区域

client = Aws::S3::Client.new()
resp = client.get_bucket_location(bucket: bucket_name)
s3_region = resp.data.location_constraint

这个API调用与aws s3api get-bucket-location

相同的API

答案 1 :(得分:1)

对于aws-sdk(2.6.5),它是:

client.get_bucket_location(bucket: bucket_name).location_constraint

但是,现在,我们如何获得属于特定区域的存储桶列表?