Boto 2'nin boto.s3.key.Key
nesnesi exists
, bir HEAD isteği yaparak ve sonuca bakarak anahtarın S3'te var olup olmadığını kontrol eden bir yönteme sahipti, ancak artık var olmadığı anlaşılıyor. Bunu kendiniz yapmak zorundasınız:
import boto3
import botocore
s3 = boto3.resource('s3')
try:
s3.Object('my-bucket', 'dootdoot.jpg').load()
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
# The object does not exist.
...
else:
# Something else has gone wrong.
raise
else:
# The object does exist.
...
load()
söz konusu nesne büyük olsa veya grubunuzda çok sayıda nesne olsa bile, tek bir anahtar için HEAD isteği yapar.
Elbette, nesnenin var olup olmadığını kontrol ediyor olabilirsiniz, çünkü onu kullanmayı planlıyorsunuz. Bu durumda, sadece unutabiliriz load()
ve yapmak get()
ya da download_file()
doğrudan, daha sonra orada hata olaya el.