【发布时间】:2014-02-13 17:56:14
【问题描述】:
给定Readable 流(可能是process.stdin 或文件流),将pipe() 用于自定义Writable 流是否可能/实用,该流将填充子Writable 直到一定大小;然后关闭该子流;打开一个新的Writable 流并继续?
(上下文是将大量数据从管道上传到 CDN,然后将其分成合理大小的块,而无需先将数据写入磁盘。)
我尝试创建一个Writable 来处理_write 函数中子流的打开和关闭,但是当传入的块太大而无法容纳现有的子流时问题就来了:它有将一些块写入旧流;创建新流;然后在完成_write 调用之前等待新流上的open 事件。
我的另一个想法是创建一个额外的Duplex 或Transform 流来缓冲管道并确保进入Writable 的块绝对等于或小于现有子流可以的数量接受,给Writable 时间来改变子流。
或者,这是否会使所有事情变得过于复杂,并且有一种更简单的方法来完成原始任务?
【问题讨论】: