我想从网上获取一张图片并将其上传到Amazon s3。在此过程中,我想检查图片的尺寸。以下是我在Python 3中的代码:
from PIL import Image
import requests
# Get response
response = requests.get(url, stream= True)
# Open image
im = Image.open(response.raw)
# Get size
size = im.size
# Upload image to s3
S3.Client.upload_fileobj(
im, # This is what i am trying to upload
AWS_BUCKET_NAME,
key,
ExtraArgs={
'ACL': 'public-read'
}
)
问题在于PIL图像对象不支持读取。当我尝试上传PIL图像对象im
时,会出现以下错误。
im
.ValueError: Fileobj must implement read
当我尝试上传'response.raw'时,它可以工作,但我需要获取图像的尺寸大小。如何将PIL图像对象更改为类似文件的对象?是否有更简单的方法,在仍然能够将图像上传到s3的同时获得其尺寸大小?
因此问题是; 如何在获取图像尺寸后上传图像至s3?