2012-04-27 2 views
2

Почему я получаю эту ошибку с помощью s3 и boto?Boto s3 ошибка. BucketAlreadyOwnedByYou

<Error><Code>BucketAlreadyOwnedByYou</Code><Message>Your previous request to create the named bucket succeeded and you already own it.</Message><BucketName>rtbhui</BucketName><RequestId>84115D3E9513F3C9</RequestId><HostId>+3TxrA34xHcSx0ecOD3pseRnE+LwUv3Ax1Pvp3PFoE8tHfOcn5BXyihc9V/oJx2g</HostId></Error> 

s3 = boto.connect_s3(parms['AWS_ACCESS_KEY_ID'], parms['AWS_SECRET_ACCESS_KEY']) 
bucket = s3.create_bucket(bucket_name) 
k = Key(bucket) #bucket is global 
k.key = bucket_path_and_key #'test/test/test' 
+1

Вы попробуйте прочитать сообщение об ошибке? –

+0

Глупо меня ... У меня всегда было имя ведра с отметкой времени ... это первый из них. – Tampa

+0

Если вы хотите получить доступ к существующему ведру, используйте s3.get_bucket (bucket_name) или s3.lookup (bucket_name). – garnaat

ответ

2

Очевидно, что контейнер с таким же именем уже существует.

6

BucketAlreadyOwnedByYou ошибки будут возвращены только за пределами США. Внутри стандартного региона США (т. Е. Если вы не укажете ограничение местоположения), попытка воссоздать ведро, которое у вас уже есть, будет успешным.

Источник http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

1

Поскольку у вас уже есть ведро, вы можете просто удалить последние три строки кода, и заменить их на что-то вроде:

bucket = conn.get_bucket(bucket, validate = False) 
k = Key(bucket) 
k.key = key 
Смежные вопросы