图像错误,未加载S3图像检索

问题描述 投票:0回答:1

我已经在后端(托管在Elastic Beanstalk上)上编写了代码,以从S3存储桶中检索文件,并以另一个名称将其保存回存储桶。我正在使用boto3,并创建了一个名为“ s3”的s3客户端。

bucketname是存储桶的名称,keyname是密钥的名称。我也在使用tempfile模块

tmp = tempfile.NamedTemporaryFile()
with open(tmp.name, 'wb') as f:
    s3.download_fileobj(bucketname, keyname, f)    
s3.upload_file(tmp, bucketname, 'fake.jpg')

[我想知道我的理解是否已关闭(仍在调试为什么会出现错误)-我创建了一个tempfile,并使用keynamebucketname打开并保存了对象的内容。然后,我将该临时文件以其他名称上传到存储桶。我的推理正确吗?

python amazon-web-services amazon-s3 amazon-elastic-beanstalk temporary-files
1个回答
0
投票

upload_file()命令在第一个参数中应使用文件名(作为string),不是 file对象。

相反,您应该使用upload_fileobj()

但是,我会推荐一些不同的东西...

如果只想复制对象,则可以使用copy_object

copy_object
© www.soinside.com 2019 - 2024. All rights reserved.