当前位置: 首页 > 面试题库 >

如何使用Cloud Functions删除文件?

葛昱
2023-03-14
问题内容

当我删除Firebase数据库中的帖子时,我希望云功能可以相应地删除Firebase存储中帖子的缩略图。我的问题是,当我尝试删除缩略图时,我认为找不到正确的图像文件。

这是我尝试过的:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
const gcs = require('@google-cloud/storage')()

exports.deletePost = functions.database.ref('Posts/{pushId}').onWrite(event => {

  const original = event.data.val()
  const previous = event.data.previous.val()
  const pushId = event.params.pushId

  if (original === null)
    return

  const filePath = 'Posts/' + pushId + 'thumbnail.jpg'
  const bucket = gcs.bucket('postsapp-12312')
  const file = bucket.file(filePath)
  const pr = file.delete()


  return pr
});

这就是我在日志中得到的

ApiError:找不到Object.parseHttpRespBody(/user_code/node_modules/@google-
cloud/storage/node_modules/@google-
cloud/common/src/util.js:192:30),位于Object.handleResp(/ user_code /
node_modules / @ google-cloud / storage / node_modules / @ google-cloud /
common / src / util.js:132:18)在/ user_code / node_modules / @ google-cloud /
storage / node_modules / @ google-cloud / common / src /
Request.onResponse上的util.js:465:12
[作为_callback](/user_code/node_modules/@google-
cloud/storage/node_modules/retry-
request/index.js:120:7)在Request.self.callback(/
user_code/node_modules/@google-
cloud/storage/node_modules/request/request.js:188:22)(在Request.emit(events.js:191:7),在sendTwo(events.js:106:13))。(/user_code/node_modules/@google-
cloud/storage/node_modules/request/request.js:1171:10)在emitOne(events.js:96:


问题答案:

我已经设法解决了。这里的问题是我写的存储桶地址错误。它应该像postsapp-12312.appspot.com而不是postsapp-12312

更新 有关放置存储桶地址的更好方法



 类似资料:
  • 本文向大家介绍如何使用python删除一个文件?相关面试题,主要包含被问及如何使用python删除一个文件?时的应答技巧和注意事项,需要的朋友参考一下  

  • 本文向大家介绍如何使用Python删除交换文件?,包括了如何使用Python删除交换文件?的使用技巧和注意事项,需要的朋友参考一下 交换文件的扩展名为.swp。递归地从文件夹中删除所有交换文件的最简单方法是使用带有扩展名(.swp)的字符串函数ends匹配文件名并删除这些文件。  示例 该程序将递归搜索目录“ my_folder”,并删除所有以.swp结尾的文件。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能是)唯一的ID查找而不是来查找文档的。

  • 问题内容: 我完全没有使用Windows API的经验,所以请原谅我的无知。 我想删除文件到回收站。如何使用JNA做到这一点,以及如何检测是否不可能(例如,由于文件位于网络共享上)? 问题答案: 使用已定义和方法的。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能)唯一的id使用来查找文档的- 而不是。

  • 我正在使用gradle构建一个Spring Boot应用程序,我希望从war中删除文件,因为该文件将从外部加载(它运行在tomcat容器中,而不是嵌入式的)。 我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。 我相信Maven使用作为等价物。