【发布时间】:2019-08-11 03:18:03
【问题描述】:
我创建了生成 xlsx 文件的云函数,我需要用户在生成该文件后下载该文件。
方法一:上传到Bucket,然后重定向
到目前为止,我已经尝试使用此 API 将文件上传到存储桶,然后将他重定向到存储桶文件 url,我还使用此 API 仔细检查了存储桶名称,但我得到了同样的错误每次:
{"error":{"code":500,"status":"INTERNAL","message":"function crashed","errors":["socket hang up"]}}
包含上传到bucket的部分代码:
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,所以它无法控制服务器。
【问题讨论】:
-
能否请您提供用于将文件上传到云存储的代码以及显示您“读取文件”的位置以及您尝试从云函数返回什么的代码.
-
@DennisAlund 我添加了代码
-
我刚刚注意到您在问题中说的是 XML,但文件后缀是 XLSX。你是说 XML 吗?
-
对不起,我搞错了,是xlsx
标签: node.js firebase download google-cloud-platform google-cloud-functions