当尝试将matplotlib piechart保存到S3 bucket时,将空文件上传到S3 bucket



所以我想使用一些数据创建一个matplotlib饼图,然后将其保存到BytesIO并发送到我的S3桶以存储并稍后使用此图片。在操作过程中没有出现错误,它成功上传到我的S3上,名称正确,但文件的大小为0,它是完全空的,虽然如果我在上传前通过print()检查它,但它不是空的。

async def generate_pie_chart():
slices = [33,33,33]
fig = Figure()
pie = fig.subplots()
pie.pie(slices)
buf = BytesIO()
fig.savefig(buf, format="png")
S3_CLIENT.upload_fileobj(buf, S3_BUCKET, 'piee')

只需在upload_fileobj()上方添加以下行:

buf.seek(0)

移动"光标"到BytesIO的开始。当upload_fileobj()被调用时,它可以从文件的开头读取/上传。

最新更新