【发布时间】:2019-06-25 04:36:01
【问题描述】:
我正在尝试使用来自 firebase 云功能的 http 触发器将响应发送回客户端。 当我使用 Cloud Storage 中的文件位置发送响应时,sendFile 方法会抛出此错误:
"path must be absolute or specify root to res.sendFile"
res.sendFile(obj.path(param1, param2, param3, param4));
obj.path(param1, param2, param3, param4) 这会构建一个到 gs:// 或带有参数的 https:// 的路径。
然后我决定这样做:
const rp = require("request-promise");
exports.fun = functions.https.onRequest( async (req, res) => {
let extResponse = await rp('firebase storage location');
extResponse.pipe(res);
});
rp 现在返回此错误:
StatusCodeError: 403 - "{\n \"error\": {\n \"code\": 403,\n \"message\": \"Permission denied. Could not perform this operation\"\n }\n}"
此错误是因为云存储需要对请求进行身份验证才能让服务从存储中下载文件。
有没有办法让它工作并将文件返回给客户端?
【问题讨论】:
标签: firebase google-cloud-storage google-cloud-functions