Estou tentando escrever um python "bom" e capturar um S3 sem esse erro de chave com este:
session = botocore.session.get_session()
client = session.create_client('s3')
try:
client.get_object(Bucket=BUCKET, Key=FILE)
except NoSuchKey as e:
print >> sys.stderr, "no such key in bucket"
Mas NoSuchKey não está definido e não consigo rastreá-lo até a importação que preciso defini-lo.
e.__class__
é, botocore.errorfactory.NoSuchKey
mas from botocore.errorfactory import NoSuchKey
dá um erro e from botocore.errorfactory import *
também não funciona e não quero capturar um erro genérico.
s3 = boto3.resource("s3")
), você pode acessar o cliente e, portanto, a Exceção vias3.meta.client.exceptions.NoSuchKey
. Consulte stackoverflow.com/questions/38581465/…No boto3, consegui acessar a exceção no meta cliente do recurso.
fonte
Acho que a maneira mais elegante de fazer isso é no Boto3 é
A documentação sobre tratamento de erros parece esparsa, mas a seguir imprime os códigos de erro para os quais isso funciona:
fonte