我正在服务器上运行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]}
在当前形式下,请求流在第一次调用时就耗尽了。
理想情况下,我想向我的每个API接口传递一个chunk generator
。
目标是从Flask中的请求流创建块生成器函数。此外,我计划从单独的线程运行API调用。
在这方面的任何帮助将不胜感激。谢谢!