上传图片到S3

Upload image to S3

我正在开发一个使用 Python Tornado 的网络应用程序,我必须在其中将图像上传到 S3。它的工作。我的过程如下:

但我的问题是,

有没有办法避免在本地保存文件,因为我已经将文件的内容放在变量中了?这也是出于安全目的。

这个问题完全有道理!您需要将内存中存储的图像转换为字节数组。 Boto3 put_object 支持此处所述的字节:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.put_object

因此只需将存储 image_bytearray 的变量粘贴到 put_object() 中的 Body。

import boto3 

session = boto3.Session()
s3 = session.client("s3")
s3.put_object(Body = iamge_bytearray, Bucket='your-s3-bucket', Key='test/test.png')