假设我们想要读取1GB文件以上传到网络端点。唯一的问题是,在发出网络上传请求之前,我们必须发出另一个网络请求来获取令牌以允许上传。
所以,如果某人的代码看起来像......
fs.createReadStream('1-gb-file').pipe(myWritableStream);
...在我的写入流已准备就绪(获取令牌之后)之前,我是否应该担心内存中的数据缓冲?
我发现fs.createReadStream
可读的highWaterMark
为64kb。这是否意味着在将更多数据从可读的数据中吸出之前,最大缓冲区限制为64kb?
只有在我调用this.emit('writable')
(或其他一些触发器)之后,数据才会从可读的读取(超出highWaterMark)开始吗?编辑:也许触发器只是调用_write收到的第一个调用回调?
我对流api很新,所以请帮助。我一直在寻找类似的问题,而且找不到任何问题。悲伤的脸。
谢谢!