Boto
2的
boto.s3.key.Key对象曾经有一种
exists方法,该方法通过执行HEAD请求并查看结果来检查密钥是否在S3上存在,但似乎不再存在。您必须自己做:
import boto3import botocores3 = 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. raiseelse: # The object does exist. ...
load()对单个键执行HEAD请求,这是快速的,即使有问题的对象很大或存储桶中有很多对象也是如此。
当然,您可能正在检查对象是否存在,因为您打算使用它。如果是这种情况,您只需将
load()和忘掉,然后直接执行a
get()或
download_file(),然后在那里处理错误情况。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)