Save image data from a iterator object to AWS S3 in python(将图像数据从迭代器对象保存到Python中的AWS S3)
本文介绍了将图像数据从迭代器对象保存到Python中的AWS S3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我调用的API返回包含图像数据的迭代器对象。我想遍历它们并上传到S3。我可以在将它们转储/上传到S3之前或之后将它们打开到.png
或.jpeg
。
import boto3
# Download / open photo
img_obj = gmaps.places_photo(ph, max_width = 500, max_height = 400)
print(img_obj)
<generator object Response.iter_content.<locals>.generate at 0x7ffa2dsa7820>
s3 = boto3.client('s3')
with open('output_image_{}.png'.format(c), 'w') as data:
for chunk in img_obj:
s3.upload_fileobj(data,'mybucket','img/{}'.format(chunk))
错误:
Input <_io.BufferedWriter name='output_image_1.png'> of type: <class '_io.BufferedWriter'> is not supported.
在本地计算机上,我能够写入文件:
with open("output_image_{}.png".format(c), "w") as fp:
for chunk in img_obj:
fp.write(chunk)
我要直接将img_obj
保存在AWS S3上。
推荐答案
可以使用s3fs
以png
格式保存图像。
我可以使用以下代码重新创建并实现该示例:
from PIL import Image
import s3fs
s3=s3fs.S3FileSystem(client_kwargs=<aws_credentials>)
img_obj = Image.open('sample_file.png')
img_obj.save(s3.open('s3:///<bucket_name>/sample_file.png', 'wb'), 'PNG')
这篇关于将图像数据从迭代器对象保存到Python中的AWS S3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:将图像数据从迭代器对象保存到Python中的AWS S3
基础教程推荐
猜你喜欢
- 筛选NumPy数组 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01