在流完成之前调用节点解压缩完成

时间:2019-12-16 23:51:29

标签: node.js asynchronous stream unzip node-streams

我具有以下功能,该功能可以接收zip流,解压缩并将其上传到S3:

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,然后继续打印ENTRY日志。

我如何才能真正确定流是否真的结束? uploadToS3需要一个缓冲区,因此我需要await并同步执行某些操作-很好。但是,如何确定所有文件都已上传?

提前谢谢!

0 个答案:

没有答案