Node.js 在流完成之前调用节点unzippers Finish
我有以下功能,可以接收压缩流,解压并上传到S3:Node.js 在流完成之前调用节点unzippers Finish,node.js,asynchronous,stream,unzip,node-streams,Node.js,Asynchronous,Stream,Unzip,Node Streams,我有以下功能,可以接收压缩流,解压并上传到S3: export const unzipAndUpload = async (stream) => stream .pipe(unzipper.Parse()) .on("entry", async entry => { await uploadToS3( await entry.buffer(), entry.path ); console.log(
export const unzipAndUpload = async (stream) =>
stream
.pipe(unzipper.Parse())
.on("entry", async entry => {
await uploadToS3(
await entry.buffer(),
entry.path
);
console.log("ENTRY", entry.path)
entry.autodrain();
})
.on("finish", () => {
console.log("FINISH")
})
.promise();
当前,首先调用FINISH
,然后继续打印条目
日志
我如何才能真正判断这条流是否真的结束了uploadToS3
需要一个缓冲区,所以我需要等待并同步执行某些操作-这很好。但是,如何确保所有文件都已上载
提前谢谢 node的哪个版本?我在12号执行了这个,我收到了预期的行为,完成了一个叫做“结束”的任务!哇,真有趣。运行8.7.0。你能试试这个吗?