如何跨区域迭代帐户中的所有S3存储桶

时间:2015-10-24 08:44:36

标签: python amazon-s3 boto3

我正在尝试迭代并检索有关帐户中所有S3存储桶的策略。

我正在尝试以下内容......

s3 = boto3.client('s3')
buckets = s3.list_buckets()
for bucket_name in buckets['Buckets']:
    s3.get_bucket_policy(Bucket=bucket_name['Name'])

当我运行它时,我收到以下错误:

 botocore.exceptions.ClientError: An error occurred (PermanentRedirect) when calling the GetBucketTagging operation: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

我已根据https://github.com/boto/boto3/issues/81尝试使用s3.meta.client.get_bucket_location(Bucket=bucket_name['Name']),但None的值为'LocationConstraint'

如何知道或确定任意存储桶的正确端点和/或区域?

1 个答案:

答案 0 :(得分:0)

您正确地执行此操作,减去一个小名:值None表示美国标准区域[1]us-east-1。此外,您不需要使用元客户端。您已创建的客户端使用get_bucket_location方法。