【问题标题】:How do I delete an image with cloud functions with download url?如何使用下载 url 删除具有云功能的图像?
【发布时间】:2019-09-08 08:57:38
【问题描述】:

我想删除一张图片。我只有下载网址。 在颤振中,我能够从下载 url 获取文件路径并使用该路径删除云存储中的文件。

是否可以从下载 url 获取文件路径并使用该路径从云函数中删除图像?

或者有没有更好/更快/更有效的方法来仅使用下载 url 从云存储中删除图像

【问题讨论】:

  • 当然,最好的办法是首先将路径存储在您的数据库中的 Cloud Storage 中。但听起来那不是设计的一部分。
  • 是的,它不是设计的一部分。我该怎么办?
  • 应该有从下载地址获取路径的功能。有吗?
  • 在客户端 SDK 中,是的。没有服务器 SDK 有这个。
  • 我认为应该实现从 url 获取存储位置的功能。它在客户端 sdk 中非常有用,也应该是后端的一个功能

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


【解决方案1】:

Google Cloud Storage 对象 URL 包含以下部分:

https://storage.cloud.google.com/[bucket_name]/[path/and/the/object/name*]?[autentication_if_needed]

*云存储中的路径是“虚拟的”,实际上它是对象名称/标识的组成部分。 Cloud Console 和 gsutil 为用户界面输出模拟文件夹。

有几个methods to delete object

  1. 从云控制台
  2. 使用 Cloud SDK 命令:gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]
  3. 使用客户端库,例如使用 python:
 def delete_blob(bucket_name, blob_name):
        """Deletes a blob from the bucket."""
        storage_client = storage.Client()
        bucket = storage_client.get_bucket(bucket_name)
        blob = bucket.blob(blob_name)
        blob.delete()
        print('Blob {} deleted.'.format(blob_name))`

请记住,您需要为用于执行操作的用户/服务帐户提供正确的permissions to delete the object

【讨论】:

  • 我相信问题是询问 Firebase 客户端库生成的下载 URL,这与您在此处所说的不同。
猜你喜欢
  • 2018-06-17
  • 2021-08-19
  • 2020-03-12
  • 2018-05-02
  • 1970-01-01
  • 2021-02-13
  • 2018-09-21
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多