我正在尝试删除特定存储桶中的密钥,如果密钥已成功删除,则只想执行下一步,否则请在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()调用的任何异常(我没有找到)?
答案 0 :(得分:1)
boto.s3.key.Key.delete()
会引发boto.exception.S3ResponseError
。
也就是说,您应该检查是哪个错误(如果出现)。可以是S3 error responses中的任何一个。
boto.s3.key.Key.delete()
只会调用boto.s3.bucket.Bucket.delete_key()
。
似乎boto.s3.bucket.Bucket.delete_key()
在内部检查来自S3的响应,如果它不是HTTP 204 NoContent
响应,它将从其提供者boto.exception.S3ResponseError
引发storage_response_error