因此,我创建了一个webservice(基于starlette),其端点接受二进制体。我想把这个双星体喂给fastavro。你知道吗
Starlette doc says,我可以通过request.stream()
以异步流的形式访问原始数据。你知道吗
async for chunk in request.stream():
# do something with chunk...
现在,我想把这条小溪注入fastavro。问题是,fastavro reader需要一个类似文件的输入流:
with open('some-file.avro', 'rb') as fo:
avro_reader = reader(fo)
我的问题是,有没有一种干净的方法可以将这个异步流转换成类似的文件?你知道吗
我想我可以实现一个对象,它有一个read()方法等待并返回请求.stream. 但是如果调用者传递一个大小,我需要一个内存缓冲区,不是吗?有什么东西是基于BufferedRWPair的吗?你知道吗
或者,在将整个流提供给fastavro之前,只有这样才能先将其存储到磁盘或内存中?你知道吗
提前谢谢!你知道吗
我最终使用了一个spooledtemporary文件:
它不是我设想的理想解决方案(以某种方式在输入和输出之间直接传输数据),但仍然足够好。。。你知道吗
相关问题 更多 >
编程相关推荐