如何在HTTP请求中使用读取流发送文件的一部分?
我想发送一个巨大文件的任意Content-Range
。
当我fs.createReadStream('hugeFile.bin').pipe(response)
过滤掉可读流的一部分时,我无法使用事件。我可以创建一个假的可写流,它会省略(如> /dev/null
)部分数据,但chunk
大小可能不是要发送的第一部分的倍数。
如何解决问题?
答案 0 :(得分:1)
看看https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_createreadstream_path_options。
特别是start
和end
选项 - 这些选项可让您设置文件中的字节偏移量来开始和停止读取。
所以基本上你做的是:
fs.createReadStream('hugeFile.bin', { start: firstByte, end: lastByte }).pipe(response)
或道德等同物,它会做你想要的。