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

How I can remove an object from firebase storage with java admin sdk

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

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

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

如果您使用的是 Node.js,Firebase Admin SDK 中的存储模块只会自动初始化常规 Node.js SDK for Cloud Storage for you. So you can use the approach shown in their 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。 (存储桶名称、blob 名称或 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();