当前位置: 首页 > 知识库问答 >
问题:

通过Firebase函数将文件下载到Firebase存储

汪晟睿
2023-03-14

我目前有问题下载到函数tmp dir下面是我的代码。函数返回函数执行时间为6726 ms,已完成,状态为:“crash”

export async function donwloadExternalFile(url:string, fileName:string) {

    try {
      
        const axios  = await import('axios')
        const fs = await import('fs')  

        const workingDir = join(tmpdir(), 'downloadedFiles')
        const tmpFilePath = join(workingDir, fileName) 

        const writer = fs.createWriteStream(tmpFilePath);

        const response = await axios.default.get(url, { responseType: 'stream' })

        response.data.pipe(writer);

        await new Promise((resolve, reject) => {
            writer.on('error', err => {
                writer.close();
                reject(err);
            });

            writer.on('close', () => {
                resolve();
            });
        });

        return 

    } catch (error) {
        throw error 
    }

  }

共有1个答案

郑俊材
2023-03-14

如上面的注释部分所述,您可以使用云存储Node.js SDK将文件上传到云存储。

请看一下SDK客户端参考文档,在这里您可以找到关于这个云存储客户端库的大量示例和更多信息。

另外,我要提醒您,您可以通过使用管道来绕过对/tmp的写入。根据Cloud Functions的文档,“您可以通过创建读取流、通过基于流的进程传递文件,并将输出流直接写入云存储来处理云存储上的文件。”

 类似资料: