python - 从请求流创建块生成器 - Python Flask
问题描述
我在我的服务器上使用 Flask-restful 运行 Python 和 Flask。我想处理流数据上传到我的服务器。我设置了一个端点,如下所示:
class ChunkProcessor(Resource):
j = 0
def chunk_fun(self):
chunk_size = int(request.headers.get("x-chunk-size"))
chunk = request.stream.read(chunk_size)
self.j = 0
while chunk:
print("got chunk")
yield chunk
self.j += 1
chunk = request.stream.read(chunk_size)
def post(self):
for i in self.chunk_fun():
pass
return {"success": "TRUE", "n_chunks": self.j}
在这种形式下,它工作正常。
但现在我想将这些块发送到多个目的地。即如下:
class ChunkProcessor(Resource):
def chunk_fun(self):
chunk_size = int(request.headers.get("x-chunk-size"))
chunk = request.stream.read(chunk_size)
while chunk:
yield chunk
chunk = request.stream.read(chunk_size)
def post(self):
res1 = MyAPI1().call(self.chunk_fun)
res2 = MyAPI2().call(self.chunk_fun)
return {"success": "TRUE", "output": [res1, res2]}
在当前形式中,请求流被第一次调用耗尽。
理想情况下,我想将 a 传递chunk generator
给我的每个 API 接口。
目标是从 Flask 中的请求流创建一个块生成器函数。此外,我计划从单独的线程运行我的 API 调用。
在这方面的任何帮助将不胜感激。谢谢!
解决方案
推荐阅读
- python - 将元数据添加到 tflite 图像分割器模型(具有多个输出)
- debhelper - 没有构建工具的 Debian 打包
- python - 课堂谷歌更新答案
- flutter - 如何将我的设备连接到 Moor Inspector
- javascript - 如何将对象传递给 Web 组件生成的宽度 Vue?
- python - 文本或 Excel 文件中的异常 ID
- r - 为带有线条的条形图设置相应的颜色
- r - R - 每组一起计算两列中的唯一/不同值
- docker - 在 docker 中使用 cuda 11.2 和 Ubuntu 20.04 映像时出错
- wordpress - 无法在 Elementor 中保存更改,文档已在保存进度中