如何使用 java admin sdk 从 firebase 存储中删除对象

问题描述

我有存储位置(如 gs://xxxxxx.appspot.com/43B92kgk7nRtN9uaIGpCAMFF3mr1/2020-12-24 13:18:59.670092.jpg )并想通过管理 SDK 从我的 Spring Boot 应用程序中删除该对象。

在所有文档中,他们谈到 blob Id 、bucket name 和 ...(我没有这些信息),试图通过存储位置 uri 找到这些信息,但没有成功。

我想知道使用存储位置 uri 从存储中删除最简单的解决方案是什么

解决方法

如果您使用 Node.js,Firebase Admin SDK 中的存储模块只会为您自动初始化常规 Node.js SDK for Cloud Storage。因此,您可以使用其 example of deleting a file:

中显示的方法
// Deletes the file from the bucket
await storage.bucket(bucketName).file(filename).delete();

console.log(`gs://${bucketName}/${filename} deleted.`);

您可能需要从您拥有的位置去除 gs://xxxxxx.appspot.com/,因为 Admin SDK 已经为您设置了存储桶名称。

,

这是我通过反复试验找到的解决方案,通过测试不同的存储桶名称、bolb 名称和 blob id。 (bucket name,blob name 或 blob Id 在大多数文档中并不明显)

我使用“xxxxxx.appspot.com”作为存储桶名称,使用“43B92kgk7nRtN9uaIGpCAMFF3mr1/2020-12-24 13:18:59.670092.jpg”作为blob名称,并使用以下代码将其从存储中删除

 Bucket bucket = StorageClient.getInstance().bucket("timeline-10.appspot.com");
 boolean result =  bucket.get("43B92kgk7nRtN9uaIGpCAMFF3mr1/2020-12-24 13:18:59.670092.jpg").delete();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...