【发布时间】:2025-11-15 11:15:01
【问题描述】:
我想使用 boto3 在 S3 中保存一个 csv 文件(“test.csv”)。 我的存储桶是“outputS3Bucket”,关键是“文件夹/newFolder”。 我想检查“newFolder”是否存在,如果不存在则创建它。
import boto3
client = boto3.client('s3')
s3 = boto3.resource('s3')
bucket = s3.Bucket("outputS3Bucket")
result = client.list_objects(Bucket='outputS3Bucket',Prefix="folder/newFolder")
if len(result)==0:
key = bucket.new_key("folder/newFolder")
newKey = key + "/" + "test.csv"
client.put_object(Bucket="outputS3Bucket", Key=newKey, Body=content)
# put_object path: 's3://outputS3Bucket/folder/newFolder/test.csv'
我有几个问题:
- 如果我没有写完整的键名(例如“folder/ne”)并且有一个“neaFo”文件夹,它仍然说它存在。
key = bucket.new_key("文件夹/newFolder") AttributeError: 's3.Bucket' 对象没有属性 'new_key'
【问题讨论】:
-
您的代码提到了
bucketvariable\object 用作key = bucket.new_key("folder/newFolder"),但是bucket未在您的代码中的任何位置设置,您能否编辑您的问题以反映bucket是什么?跨度> -
@Eytan Avisror 抱歉,刚刚添加。