我想将一个20千兆字节的文件上传到S3,并使用crypto api计算sha256校验和。目前,我可以使用两个可读流链接在一起的两个promises,但我想优化,以便我只能使用一个可读流。查看AWS SDK implementation,fillStream方法使用ReadableStream.read方法。但在我看来,向两个消费者发送数据块的方法是将一个事件处理程序附加到'data'事件。
根据ReadableStream,有两种模式,暂停和流动。那么附加一个事件处理程序会做什么呢?它会在我的读取或AWS SDK的读取中跳过数据块吗?它会触发从磁盘读取两次相同的数据吗?
是否还有其他方法可以使用crypto api和aws-ask包来优化磁盘访问?
答案 0 :(得分:0)
您可以尝试同时将一个可读流传输到两个可写流,也可以编写一个自定义代码来侦听数据事件并写入两个流。
npm上还有一些模块可以将一个流分成两部分: