我有一个想多次阅读的 ReadStream。readStream 是使用 fs.createReadStream 创建的。
我第一次使用它来获取它的md5
哈希值,我正在使用 module hasha
, function fromStream
,第二次我使用它FormData
来将文件上传到虚拟主机。
我怎样才能使用这个 ReadStream 来做这两件事呢?
readStream = fs.createReadStream("/tmp/test.txt");
hash = await hasha.fromStream(readStream, hashOptions);
readStream.on("data", (chunk) => console.log("data chunk", chunk)).on("end", () => console.log("finished"));
它没有按应有的方式将内容记录到控制台,可能是因为hasha.fromStream
它正在pipe
处理流。如果我不执行hasha.fromStream
它工作正常,则会记录块。
我正在使用的模块hasha
位于 github 上:https ://github.com/sindresorhus/hasha/blob/master/index.js#L45
我不想在获取哈希之前将数据保存到缓冲区,因为我将在大文件中使用它。
我还制作了一个 runkit 脚本来显示我的问题,你可以在那里玩: https ://runkit.com/5942fba4653ae70012196b77/5942fba4653ae70012196b78