如何在 Firebase 存储中启用和使用文件版本控制?
How to enable and use file versioning in Firebase Storage?
Firebase 存储基于 Google 云平台,允许 versioning of files。
在 Firebase 控制台中没有关于 GCP 存储桶的选项,并且在访问 GCP 控制台时,似乎没有办法在与 Firebase 项目相关的存储桶中启用版本控制。
另外,Firebase SDK 没有提到如何访问以前版本的文件,即使启用了版本控制。
Firebase 存储可以进行版本控制吗?
Firebase 存储建立在 GCS 之上,因此可以通过 Firebase 存储访问 GCS 的许多功能。 Firebase 存储还共享一个名为 <project-id>.appspot.com
(或类似名称)的 GCS 存储桶,可以通过 Firebase 控制台和云控制台访问。
您可以使用 gsutil 工具(可能是最简单的方法)在您的存储桶上启用对象版本控制,如下所示:
gsutil versioning set on gs://<project-id>.appspot.com
也就是说,除了最新版本之外,无法使用 Firebase 存储客户端检索任何内容。这是有意为之的,因为 Firebase 存储提供了一个更简单、以移动为中心的 GCS API 子集,而我们没有一个超级引人注目的用例来为移动设备提供直观的对象版本控制故事。每个用户的数据备份(由用户在没有开发人员干预的情况下启动)和文档差异是我能想到的两个,但如果你有另一个,我们很乐意听到它:)
我们预计大多数开发人员会启用此功能以防止永久删除(实际上,我们在 delete docs 中提到这样做),因此会使用 gsutil
或他们自己的自定义后端来检索和恢复适当的文件。
编辑 10 月 1 日:由于这些用例变得越来越普遍,我们更新了文档以包含您可以在 GCP Integration guide 中使用 Google Cloud Platform 执行的更多操作。
对象版本控制后 enabled its possible to listing noncurrent object versions。
获取以前的对象版本:
Long previousGeneration = ...;
byte[] previousContent = bucket.getStorage().get(BlobId.of(bucket.getName(), objectName, previousGeneration)).getContent();
Firebase 存储基于 Google 云平台,允许 versioning of files。
在 Firebase 控制台中没有关于 GCP 存储桶的选项,并且在访问 GCP 控制台时,似乎没有办法在与 Firebase 项目相关的存储桶中启用版本控制。
另外,Firebase SDK 没有提到如何访问以前版本的文件,即使启用了版本控制。
Firebase 存储可以进行版本控制吗?
Firebase 存储建立在 GCS 之上,因此可以通过 Firebase 存储访问 GCS 的许多功能。 Firebase 存储还共享一个名为 <project-id>.appspot.com
(或类似名称)的 GCS 存储桶,可以通过 Firebase 控制台和云控制台访问。
您可以使用 gsutil 工具(可能是最简单的方法)在您的存储桶上启用对象版本控制,如下所示:
gsutil versioning set on gs://<project-id>.appspot.com
也就是说,除了最新版本之外,无法使用 Firebase 存储客户端检索任何内容。这是有意为之的,因为 Firebase 存储提供了一个更简单、以移动为中心的 GCS API 子集,而我们没有一个超级引人注目的用例来为移动设备提供直观的对象版本控制故事。每个用户的数据备份(由用户在没有开发人员干预的情况下启动)和文档差异是我能想到的两个,但如果你有另一个,我们很乐意听到它:)
我们预计大多数开发人员会启用此功能以防止永久删除(实际上,我们在 delete docs 中提到这样做),因此会使用 gsutil
或他们自己的自定义后端来检索和恢复适当的文件。
编辑 10 月 1 日:由于这些用例变得越来越普遍,我们更新了文档以包含您可以在 GCP Integration guide 中使用 Google Cloud Platform 执行的更多操作。
对象版本控制后 enabled its possible to listing noncurrent object versions。
获取以前的对象版本:
Long previousGeneration = ...;
byte[] previousContent = bucket.getStorage().get(BlobId.of(bucket.getName(), objectName, previousGeneration)).getContent();