我正在编写一个应用程序,我需要从流中删除前X个和前Y个字节。所以我需要的基本上是一个我可以传递给pipe
的函数,它将X和Y作为参数,并在流程中从流中删除所需的字节数。我的简化设置是这样的:
const rs = fs.createReadStream('some_file')
const ws = fs.createWriteStream('some_other_file')
rs.pipe(streamPadding(128, 512)).pipe(ws)
之后,some_other_file
应包含some_file
的所有内容减去前128个字节和后512个字节。我已经阅读过流,但无法弄清楚如何正确地执行此操作,因此它也会在传输过程中处理错误并正确地进行背压。
据我所知,我需要一个双工流,每当我从它读取时,从其输入流中读取,跟踪我们在流中的位置并在发出之前跳过前128个字节数据。有关如何实施的一些提示非常有用。
第二部分似乎更难,如果不是不可能的话,因为在输入流实际关闭之前我怎么知道我是否已经达到最后512字节。我怀疑这可能是不可能的,但我确信必须有办法解决这个问题,所以如果你有任何建议,我会非常感激!