给定一个可读流(可以是 process.stdin 或文件流),是否可能/实际上将其管道传输到自定义的可写流,该流将填充子可写流直到达到一定大小;然后关闭该子流;打开新的可写流并继续?
(背景是将大块数据从管道上传到CDN,将其分成合理大小的块,而无需先将数据写入磁盘。)
尝试创建一个可写流来处理在 _write 函数中打开和关闭子流,但遇到的问题是传入的块太大而无法适应现有的子流:它必须将某些块写入旧流;创建新流;然后等待新流的 open 事件才能完成 _write 调用。
我考虑的另一个想法是创建一个额外的 Duplex 或 Transform 流来缓冲管道并确保进入可写流的块肯定小于或等于现有子流可以接受的数量,以给可写流更改子流的时间。
另外,这是否过于复杂化了一切,原始任务有更简单的方法吗?
(背景是将大块数据从管道上传到CDN,将其分成合理大小的块,而无需先将数据写入磁盘。)
尝试创建一个可写流来处理在 _write 函数中打开和关闭子流,但遇到的问题是传入的块太大而无法适应现有的子流:它必须将某些块写入旧流;创建新流;然后等待新流的 open 事件才能完成 _write 调用。
我考虑的另一个想法是创建一个额外的 Duplex 或 Transform 流来缓冲管道并确保进入可写流的块肯定小于或等于现有子流可以接受的数量,以给可写流更改子流的时间。
另外,这是否过于复杂化了一切,原始任务有更简单的方法吗?