4

Firebase 存储基于允许对文件进行版本控制的Google Cloud Platform 。

在 Firebase 控制台中,没有关于 GCP 存储桶的选项,并且在访问 GCP 控制台时,似乎没有办法在与 Firebase 项目相关的存储桶中启用版本控制。

此外,即使启用了版本控制,Firebase SDK 也没有提及如何访问以前版本的文件。

Firebase 存储是否可以进行版本控制?

4

2 回答 2

8

Firebase Storage 基于 GCS 构建,因此 GCS 的许多功能都可以通过 Firebase Storage 访问。Firebase 存储还共享一个名为<project-id>.appspot.com(或类似名称)的 GCS 存储桶,可以通过 Firebase 控制台和 Cloud 控制台访问该存储桶。

您可以使用gsutil工具(可能是最简单的方法)在存储桶上启用对象版本控制,如下所示:

gsutil versioning set on gs://<project-id>.appspot.com

也就是说,除了最新版本之外,无法使用 Firebase 存储客户端检索任何内容。这是有意的,因为 Firebase 存储提供了 GCS API 的一个更简单、专注于移动设备的子集,而且我们没有一个超级引人注目的用例来为移动设备提供直观的对象版本控制故事。每个用户的数据备份(由用户在没有开发人员干预的情况下启动)和文档差异是我能想到的两个,但如果你有另一个,我们很乐意听到它:)

我们预计大多数开发人员将打开此功能以防止永久删除(实际上,我们在删除文档中提到这样做),因此将使用类似工具gsutil或他们自己的自定义后端来检索和恢复适当的文件。

编辑 10/1:由于这些用例变得越来越普遍,我们更新了我们的文档,以在我们的GCP 集成指南中包含更多您可以使用 Google Cloud Platform 执行的操作。

于 2016-06-06T21:00:46.617 回答
0

启用对象版本控制后,可以列出非当前对象版本

获取以前的对象版本:

Long previousGeneration = ...;
byte[] previousContent = bucket.getStorage().get(BlobId.of(bucket.getName(), objectName, previousGeneration)).getContent();
于 2020-04-24T09:51:46.563 回答