исключения из библиотеки boto s3 python

#python #amazon-s3 #boto

#python #amazon-s3 #бото

Вопрос:

Я пытаюсь удалить ключи в определенном сегменте, и если ключ успешно удален, тогда нужно выполнить только следующий шаг, в противном случае повторите попытку удаления в S3.

 from boto.s3.connection import S3Connection, Bucket, Key
bucket = 'test-bucket'
object = Key(bucket=bucket, name='xyxabc')

# delete the object from the S3
object.delete()
  

Предоставляет ли библиотека boto какое-либо исключение (я его не нашел), которое можно использовать для проверки вызова object.delete ()?

Комментарии:

1. Откуда вы импортируете Key ? Можете ли вы добавить свой импорт в пример? Похоже, вы имели в виду S3.Object , не Key .

2. Добавлено по вашему предложению.

Ответ №1:

Краткий ответ

boto.s3.key.Key.delete() выдает сообщение boto.exception.S3ResponseError о наличии какого-либо ответа об ошибке от S3.

Тем не менее, вы должны проверить, что это за ошибка, если она возникла. Это может быть любой из ответов на ошибки S3.

Более подробная информация

boto.s3.key.Key.delete() просто вызывает boto.s3.bucket.Bucket.delete_key() .

Похоже, что boto.s3.bucket.Bucket.delete_key() внутренняя проверка ответа от S3, и если это не HTTP 204 NoContent ответ, он вызывает storage_response_error от своего поставщика, который является boto.exception.S3ResponseError .