node.js - 如何使用 firebase admin sdk 删除 Firebase Storage 中的文件
问题描述
我正在开发一个 android 应用程序,一个使用烧瓶和 firebase 的网络服务器。当客户端应用程序上传图像文件时,Web 服务器会在数据库中保存一个图像 url。
然后,客户端应用程序从 firebase 存储中获取图像 url 并打开图像。
所以我的网络服务器和应用程序不知道文件名。但是,要删除存储中的文件,需要知道文件的名称。只有我能得到的是文件网址。
我的网络服务器如何使用文件 url 删除文件?
以下代码用于使用文件名删除文件。我想将此代码更改为使用文件 url 删除文件。
bucket = storage.bucket('<BUCKET_NAME>')
def deleteFile(imageName):
try:
bucket.delete_blob('profile_images/' + imageName)
bucket.delete()
return True
except Exception as e:
print(e)
return False
解决方案
Firebase Admin SDK 中的 Storage 客户端是 Google Cloud Storage 的 Node.js 客户端的瘦包装器。据我所知,后者没有办法将下载 URL 映射回File
.
这意味着您必须使用 找到来自客户端的路径FirebaseStorage.getReferenceFromUrl()
,然后将该路径传递给您的 Web 服务器。这样,JavaScript 代码就可以使用该路径来创建对File
.
推荐阅读
- php - 使用 PrestaShop 中的 ps_linklist 模块创建链接?
- python - 在数据帧的每一行上应用函数并同时增加一个计数器
- xml - 递归遍历节点的 RML 映射,每次都附加父属性
- linux - 如何连续 grep 日志文件并使用单行命令打印到 shell
- swift - 在 UITesting 中获取 SKProducts
- javascript - 如何将内联 CSS 添加到使用 Javascript 动态创建的元素?
- r - 根据前一个函数将函数应用于下一行,以获得 R 中的不同 id
- php - PHP SQL 查询不等待恢复完成
- scheme - 使用 Scheme 以原始模式从终端读取字符
- r - 错误:`mutate()` 输入`model` 有问题。x object '.x' not found i Input `model` is `map(...)` in R tidyverse/dplyr? 游侠模型