确定 S3 存储桶区域
Determine S3 Bucket Region
我正在使用 AWS Ruby SDK v2 跨多个区域访问各种存储桶。是否可以在我访问每个存储桶之前确定(在运行时)的区域,这样我就可以避免下面的错误,如果我用错误的区域配置 AWS S3 客户端,我会得到这个错误?
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
我知道我可以 shell 出来并使用下面的命令并解析响应,但理想情况下,我想留在 Ruby SDK 中。
aws s3api get-bucket-location
我找不到这方面的任何官方文档,但是从 aws-sdk spec 你应该可以使用下面的代码来获取区域
client = Aws::S3::Client.new()
resp = client.get_bucket_location(bucket: bucket_name)
s3_region = resp.data.location_constraint
这个调用与 aws s3api get-bucket-location
相同的 API
对于aws-sdk (2.6.5),它是:
client.get_bucket_location(bucket: bucket_name).location_constraint
但是,现在,我们如何获得属于特定区域的桶列表?
我正在使用 AWS Ruby SDK v2 跨多个区域访问各种存储桶。是否可以在我访问每个存储桶之前确定(在运行时)的区域,这样我就可以避免下面的错误,如果我用错误的区域配置 AWS S3 客户端,我会得到这个错误?
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
我知道我可以 shell 出来并使用下面的命令并解析响应,但理想情况下,我想留在 Ruby SDK 中。
aws s3api get-bucket-location
我找不到这方面的任何官方文档,但是从 aws-sdk spec 你应该可以使用下面的代码来获取区域
client = Aws::S3::Client.new()
resp = client.get_bucket_location(bucket: bucket_name)
s3_region = resp.data.location_constraint
这个调用与 aws s3api get-bucket-location
对于aws-sdk (2.6.5),它是:
client.get_bucket_location(bucket: bucket_name).location_constraint
但是,现在,我们如何获得属于特定区域的桶列表?