使用boto3检索所有区域的存储桶列表。

0

【以下的问题经过翻译处理】 我试图使用boto3从所有区域检索桶列表,但是我无法列出来自正确区域的存储桶。

到目前为止,我已经尝试了 location['LocationConstraint'],但它显示为 None。 我也尝试了以下方法,但没有起作用。

任何帮助都将不胜感激,谢谢!

profile picture
专家
已提问 5 个月前35 查看次数
1 回答
0

【以下的回答经过翻译处理】 head_bucket函数会自动在后台重定向到正确的区域,因此无论从哪个区域调用它,x-amz-bucket-region标头始终将是存储桶的区域。

将条件更改为以下内容应给出所需的输出:

if client.head_bucket(Bucket=bucket['Name'])['ResponseMetadata']['HTTPHeaders']['x-amz-bucket-region'] == reg:

然而,像那样遍历每个区域会产生许多不必要的请求,因此可能值得查看get_bucket_location函数,该函数返回LocationConstraint值,正如您所发现的,对于位于us-east-1的存储桶,该值为None。任何其他区域的存储桶都应返回实际的区域名称。只需遍历所有桶一次并在每个桶上调用get_bucket_location即可加快响应速度。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则