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

0

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

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

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

profile picture
EXPERTE
gefragt vor 5 Monaten41 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen