我怎样才能提供inputstream到node.js /快递'发送,或获得其原始输出stream?

我在快速应用程序中提供了一个path,提供了一个云文件的内容下载。 我可以访问云文件的inputstream,我想直接将其input到响应的输出stream中。 但是,我正在使用Express,似乎不支持inputstream。

我希望我能做到这一点:

res.send (cloudInputStream); 

但是这不起作用。 快递“发送采取一个身体或缓冲区,但显然不是一个inputstream。

既然如此,我想要做的就是使用res.setHeader()设置头文件,然后访问原始输出stream,然后:

cloudInputStream.pipe (responseOutputStream);

这可能吗?

另外,我可以把inputstream转换成一个缓冲区,并提供缓冲区来发送。 但是,这会将整个云文件的内容一次读入内存,这是我想避免的。

有什么想法吗?

所有你需要做的是设置你的标题后的cloudInputStream.pipe(res)

你可以做任何节点可以做的事情。 使用streampipe道和res.set标题字段或res.sendfile。