Я пытаюсь выполнить итерацию и получение политик всех кодов S3 в учетной записи.Как перебрать все ведра 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.
Я попытался использоваться s3.meta.client.get_bucket_location(Bucket=bucket_name['Name'])
как на https://github.com/boto/boto3/issues/81, но я получаю значение None
для 'LocationConstraint'
.
Как я могу узнать или установить правильную конечную точку и/или область для произвольного ковша?
в цикле for, вы делаете s3.get_bucket_policy (Bucket = bucket ['Name']) ... так что bucket_name не используется ... вы уверены, что он не должен использовать bucket_name (какая-то опечатка?) – labheshr
Упс, да, у меня была опечатка! – Drew
Я думаю, вам нужно еще одно редактирование из ведра [..] в bucket_name [...] в строке ... «Я пробовал использовать» ... также, это не причина ваших проблем? – labheshr