gpt4 book ai didi

python-3.x - Lambda Python boto3 将文件存储在 S3 存储桶中

转载 作者:行者123 更新时间:2023-12-04 19:29:03 34 4
gpt4 key购买 nike

好的,我已经看到了一些这样的例子,这是我在 AWS Lambda Python 3.6 中的代码:

# I just wrote out the file before this...
import boto3
tmp = open('/tmp/' + name_str,"rb")
s3_client = boto3.resource('s3')
bucket = s3_client.Bucket(S3BUCKETNAME)
bucket.put_object(Key=name_str, Body=tmp, ContentType='text/csv', ContentEncoding='utf-8')

我得到的错误是:

's3.ServiceResource' object has no attribute 'put_object': AttributeError



好吧,那我试试:
s3_client.upload_file('/tmp/' + name_str, S3BUCKETNAME, name_str)

's3.ServiceResource' object has no attribute 'upload_file': AttributeError



所以......我一定错过了一些基本的东西......还有其他的进口吗?为什么系统找不到这些功能?

最佳答案

这是对使用什么类型的误解。本来应该是:

s3_client = boto3.client('s3')

但请注意,我现在实际使用的代码更像是:

s3_client = boto3.client('s3')
with open('/tmp/' + name_str) as file:
object = file.read()
s3_client.put_object(Body=object, Bucket=S3BUCKET, Key=name_str, ContentType='whatever/something', ContentEncoding='whatever-itis', StorageClass='PICK_ONE', ACL='you_choose')

关于python-3.x - Lambda Python boto3 将文件存储在 S3 存储桶中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47329773/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com