Can';t使用google云存储和Firebase的云功能下载文件
我对这个问题的看法正好相反: (为了记录在案,我尝试了那里建议的所有东西) 基本上我有一个已知的文件路径,然后是一个由数据库事件触发的云函数 我可以初始化一个bucket,获取一个文件以及它的名称,但当我尝试下载它时,我得到了API错误:找不到 这是我的密码:Can';t使用google云存储和Firebase的云功能下载文件,firebase,google-cloud-storage,google-cloud-functions,Firebase,Google Cloud Storage,Google Cloud Functions,我对这个问题的看法正好相反: (为了记录在案,我尝试了那里建议的所有东西) 基本上我有一个已知的文件路径,然后是一个由数据库事件触发的云函数 我可以初始化一个bucket,获取一个文件以及它的名称,但当我尝试下载它时,我得到了API错误:找不到 这是我的密码: module.exports = (orgID, reportID) => { const bucket = gcs.bucket("MY_PROJECT.appspot.com"); const filePath =
module.exports = (orgID, reportID) => {
const bucket = gcs.bucket("MY_PROJECT.appspot.com");
const filePath = `/safety_hotline/${orgID}/${reportID}`;
const file = bucket.file(filePath);
// the name is shown correctly in the console
console.log(file.name);
const tempLocalFile = path.join(os.tmpdir(), filePath);
const tempLocalDir = path.dirname(tempLocalFile);
return mkdirp(tempLocalDir)
.then(() => {
// Download file from bucket.
return file.download({ destination: tempLocalFile });
})
.then(() => {
console.log("file downloaded succesfully");
})
.catch(err => {
console.log(err);
});
}
你可以看到我得到了文件名的控制台日志,所以我不明白为什么我不能下载它?
任何建议都将是惊人的,谢谢
编辑:为了清晰起见编辑了一点代码
您是否尝试以下操作?
我正在尝试以下完成的下载文件成功我看到您有这一行:
const filePath = `/safety_hotline/${orgID}/${reportID}`;
我猜您可能已经使用模式
safety\u热线/org/report
命名了对象,但如上所述,对象名称的第一个字符将是斜杠。这也是一个合法的对象名称,但通常是无意的。尝试删除斜杠?感谢您的响应,但这是一个使用存储触发器而不是数据库触发器的示例。对于存储触发器,我可以下载etc,因为我使用的是object.bucket(基于事件对象),但我需要能够从数据库事件运行它,因为我需要更多的控制。哦,天哪,就是这样。。。我现在觉得自己很愚蠢!非常感谢,现在我们可以回去工作了!这只会让我在一天内奖励赏金,所以我会的,非常感谢,很高兴是这样!我只知道该找什么,因为我已经做了好几次了。哈哈,好吧,来之不易的知识就在那里。考虑到可能会犯这个错误,你认为我应该改变标题还是其他什么,这样它就更适合搜索这个特定的问题了?好问题!!