如果你想使用 AWS SDK for Python (Boto3) 来判断 S3 中的文件是否存在,可以使用 S3 Object 的
Object
资源,然后调用其
Object
的
load()
方法来检查文件是否存在。下面是一个简单的示例:
import boto3
from botocore.exceptions import ClientError
s3 = boto3.resource('s3')
def check_if_file_exists(bucket_name, object_key):
try:
s3.Object(bucket_name, object_key).load()
except ClientError as e:
if e.response['Error']['Code'] == "404":
return False
else:
raise
return True
在上述代码中,bucket_name
是 S3 存储桶的名称,object_key
是文件在 S3 存储桶中的对象键。如果文件存在,则返回 True
,否则返回 False
。
需要注意的是,这种方式并不是最有效的方式,因为使用 load()
方法会下载文件内容。如果你只是想判断文件是否存在,而不需要下载文件内容,则可以使用 head_object()
方法来代替 load()
方法,这样可以减少不必要的网络流量。
import boto3
from botocore.exceptions import ClientError
s3 = boto3.client('s3')
def check_if_file_exists(bucket_name, object_key):
try:
s3.head_object(Bucket=bucket_name, Key=object_key)
except ClientError as e:
if e.response['Error']['Code'] == "404":
return False
else:
raise
return True
在上述代码中,bucket_name
和 object_key
的含义同上,如果文件存在,则返回 True
,否则返回 False
。