Can';t使用google云存储和Firebase的云功能下载文件

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 =

我对这个问题的看法正好相反:

(为了记录在案,我尝试了那里建议的所有东西)

基本上我有一个已知的文件路径,然后是一个由数据库事件触发的云函数

我可以初始化一个bucket,获取一个文件以及它的名称,但当我尝试下载它时,我得到了API错误:找不到

这是我的密码:

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(基于事件对象),但我需要能够从数据库事件运行它,因为我需要更多的控制。哦,天哪,就是这样。。。我现在觉得自己很愚蠢!非常感谢,现在我们可以回去工作了!这只会让我在一天内奖励赏金,所以我会的,非常感谢,很高兴是这样!我只知道该找什么,因为我已经做了好几次了。哈哈,好吧,来之不易的知识就在那里。考虑到可能会犯这个错误,你认为我应该改变标题还是其他什么,这样它就更适合搜索这个特定的问题了?好问题!!