无法使用Google云存储和Cloud Functions for Firebase下载文件

时间:2017-08-18 15:06:56

标签: firebase google-cloud-storage google-cloud-functions

我遇到了与此问题相反的情况: issues deleting an image using Cloud Functions for Firebase and @google-cloud/storage

(为了记录,我已经尝试了那里建议的所有事情。)

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

我可以初始化一个存储桶,获取一个文件及其名称,但是当我尝试下载它时,我会收到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);
    });
}

enter image description here

你可以看到我得到了文件名的控制台日志,所以我不明白为什么我无法下载它? 任何建议都会很棒,谢谢!

编辑:为了清晰起见,编辑了一些代码

2 个答案:

答案 0 :(得分:1)

我看到你有这条线:

  const filePath = `/safety_hotline/${orgID}/${reportID}`;

我猜你可能用模式safety_hotline/org/report命名了你的对象,但如上所述,对象名的第一个字符是斜线。这也是一个合法的对象名称,但它通常是无意的。尝试删除斜线?

答案 1 :(得分:0)

  

您尝试此操作 functions-samples

我尝试以下完成下载文件成功