【问题标题】: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 项操作:

    • moving 将旧文件命名为revision
    • 上传新文件

    或者,GCP 支持object revision,在对象本身上使用两个概念generation,在与对象关联的元数据上使用metageneration。因此,您要么继续上传新文件,而无需关注其他修订,而是将其留给 GCP 处理。使用option 列出文件以查看generationmetadata 将为您提供所有文件和修订版

    当然,您可以restore / retrieve 指定版本的文件

    【讨论】:

      【解决方案2】:

      你的目标是:

      我有一个名为 doc_1_1 的文件。现在,如果用户上传另一个文件。老的 文件应命名为 doc_1_1_revision_1 和之后 doc_1_1_revision_2 等等,新文件应该是 doc_1_1。

      Google Cloud Storage 不支持这种命名技术。作为上传过程的一部分,您必须在客户端实现此功能。

      另一个选项是启用“对象版本控制”,其中以前的同名对象仍然存在。最后上传的实例是“当前”版本。

      此链接将帮助您了解对象版本:

      Object Versioning

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-10
        • 2016-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 2017-01-11
        • 1970-01-01
        相关资源
        最近更新 更多