gpt4 book ai didi

node.js - Firebase 云函数提供本地文件以供下载

转载 作者:行者123 更新时间:2023-12-01 21:58:03 24 4
gpt4 key购买 nike

我创建了生成 xlsx 文件的云函数,我需要用户在生成该文件后下载该文件。

方法一:上传到Bucket,然后重定向

到目前为止,我已尝试使用此 API 将文件上传到存储桶,然后将他重定向到存储桶文件 url,我还使用此 API 仔细检查了存储桶名称,但我每次都会遇到同样的错误:

{"error":{"code":500,"status":"INTERNAL","message":"function crashed","errors":["socket hang up"]}}

包含上传到存储桶的代码部分:

    const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
await storage.bucket('bucket-name').upload('myfile.xlsx', {
gzip: false,
});

证明文件存在的部分代码:

    fs.access('myfile.xlsx', fs.constants.F_OK, (err) => {
console.log(`${file} ${err ? 'does not exist' : 'exists'}`);
});

我还检查了库“@google-cloud/storage”是否读取了该文件,它是否正确读取并获得了正确的文件大小。

方法二:直接下载

直接下载文件,问题是nodejs下载本地文件给用户的每个在线文档都设置了一个自定义服务器来下载文件,但我使用的是firebase,所以它不受控制服务器。

最佳答案

只是想为答案添加更多详细信息,因为无需写入文件并从中读取数据即可下载数据,只需使用以下几行获取数据并发送即可。

    res.setHeader('Content-Type', 'application/vnd.openxmlformats');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
res.end(fileData, 'binary');

关于node.js - Firebase 云函数提供本地文件以供下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55260603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com