首页 > 解决方案 > Firebase 函数 ReadStream 管道错误处理

问题描述

我有一个firebase函数,它接收一个视频+字幕文件并返回一个带有字幕文件的视频。这是由ffmpeg处理的,似乎工作正常(我将调试日志保存到gcp存储桶中)。

但是,当我尝试将视频返回给用户时,错误就会出现。这是我处理的代码:

        let readStream = fs.createReadStream(returnFilePath, {
          encoding: "base64",
        });
        readStream.on("end", function () {
          console.log("readstream ended");
          res.end(); //end write stream manually when readstream ends
        });
        readStream.on("error", (err) => {
          console.log("Error in read stream...: ", err);
        });
        res.on("error", (err) => {
          console.log("Error in write stream...: ", err);
        });
        readStream.pipe(res, { end: false });

在我的 firebase 函数日志中,这似乎执行得很好: firebase logs image

但是,在客户端,这作为 CORS / 网络错误返回给我: 网络错误图片

标签: firebasegoogle-cloud-functions

解决方案


推荐阅读