我正在使用AWS Ruby SDK v2来访问几个地区的各种存储桶。是否有可能在访问之前确定每个存储桶的(运行时)区域,因此我可以避免以下错误,如果我将AWS S3客户端配置错误的区域,我会得到错误?
您尝试访问的存储区必须使用指定的端点进行寻址。请将以后的所有请求发送到此端点。
我知道我可以使用下面的命令并解析响应,但理想情况下,我希望保留在Ruby SDK中。
aws s3api get-bucket-location
答案 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
答案 1 :(得分:1)
对于aws-sdk(2.6.5),它是:
client.get_bucket_location(bucket: bucket_name).location_constraint
但是,现在,我们如何获得属于特定区域的存储桶列表?