我在我的express应用程序中提供了一个路由,它提供云文件的内容作为下载。我有权访问云文件的输入流,我想将其直接导入响应的输出流。但是,我使用的是express,它似乎不支持输入流。
我希望我能做到:
res.send (cloudInputStream);
但这不管用。express'send需要一个主体或缓冲区,但显然不是输入流。
既然如此,我想做的是使用res.setHeader()设置头,然后访问原始输出流,然后:
cloudInputStream.pipe (responseOutputStream);
这可能吗?
或者,我可以将读取的输入流转换为一个缓冲区,并提供该缓冲区来发送。但是,这会一次将整个云文件的内容读入内存,我希望避免这种情况。
有什么想法吗?
最佳答案
你所要做的就是在设置标题后cloudInputStream.pipe(res)
。