【问题标题】:Revisions in google cloud storage谷歌云存储中的修订
【发布时间】:2018-10-25 17:57:11
【问题描述】:
我想将我的文件保存到谷歌云存储。我已经将我的文件存储为这个名称 doc_personId_fileId。但是现在如果我的用户上传另一个文件,旧文件将被替换。我想保持修订。记录所有修订的最佳方法是什么。例如:
我有一个名为 doc_1_1 的文件。现在,如果用户上传另一个文件。旧文件应命名为 doc_1_1_revision_1,之后为 doc_1_1_revision_2 依此类推,新文件应命名为 doc_1_1。
保存它的最佳方法是什么?
或者谷歌有没有提供任何东西来处理这种类型的场景?
谢谢。
【问题讨论】:
标签:
node.js
google-cloud-platform
google-cloud-storage
【解决方案1】:
您想上传 doc_1_1 几次,例如 3 次,并希望您的存储桶看起来像:
- doc_1_1
- doc_1_1_revision_3
- doc_1_1_revision_2
. . .
简而言之,您无法通过 GCP 支持自动实现这一点,它需要您围绕上传代码执行 2 项操作:
或者,GCP 支持object revision,在对象本身上使用两个概念generation,在与对象关联的元数据上使用metageneration。因此,您要么继续上传新文件,而无需关注其他修订,而是将其留给 GCP 处理。使用option 列出文件以查看generation 和metadata 将为您提供所有文件和修订版
当然,您可以restore / retrieve 指定版本的文件
【解决方案2】:
你的目标是:
我有一个名为 doc_1_1 的文件。现在,如果用户上传另一个文件。老的
文件应命名为 doc_1_1_revision_1 和之后
doc_1_1_revision_2 等等,新文件应该是 doc_1_1。
Google Cloud Storage 不支持这种命名技术。作为上传过程的一部分,您必须在客户端实现此功能。
另一个选项是启用“对象版本控制”,其中以前的同名对象仍然存在。最后上传的实例是“当前”版本。
此链接将帮助您了解对象版本:
Object Versioning