使用流发送大量内容

时间:2017-06-06 20:05:05

标签: node.js pipe partial httpserver

如何在HTTP请求中使用读取流发送文件的一部分?

我想发送一个巨大文件的任意Content-Range

当我fs.createReadStream('hugeFile.bin').pipe(response)过滤掉可读流的一部分时,我无法使用事件。我可以创建一个假的可写流,它会省略(如> /dev/null)部分数据,但chunk大小可能不是要发送的第一部分的倍数。

如何解决问题?

1 个答案:

答案 0 :(得分:1)

看看https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_createreadstream_path_options

特别是startend选项 - 这些选项可让您设置文件中的字节偏移量来开始和停止读取。

所以基本上你做的是:

fs.createReadStream('hugeFile.bin', { start: firstByte, end: lastByte }).pipe(response)

或道德等同物,它会做你想要的。