boto.s3.key.Key
Đối tượng của Boto 2 đã từng có một exists
phương thức kiểm tra xem khóa có tồn tại trên S3 hay không bằng cách thực hiện một yêu cầu CHÍNH và xem kết quả, nhưng dường như điều đó không còn tồn tại. Bạn phải làm điều đó cho chính bản thân mình:
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()
thực hiện một yêu cầu CHÍNH cho một khóa duy nhất, nhanh, ngay cả khi đối tượng trong câu hỏi lớn hoặc bạn có nhiều đối tượng trong nhóm của mình.
Tất nhiên, bạn có thể kiểm tra xem đối tượng có tồn tại không vì bạn đang dự định sử dụng nó. Nếu đó là trường hợp, bạn chỉ cần quên load()
và thực hiện một get()
hoặc download_file()
trực tiếp, sau đó xử lý trường hợp lỗi ở đó.