Google云存储中的修订

时间:2018-10-25 09:30:55

标签: node.js google-cloud-platform google-cloud-storage

我想将文件保存到Google云存储中。我已将文件存储为该名称doc_personId_fileId。但是现在,如果我的用户上传了另一个文件,旧文件将被替换。我想保留修订。记录所有修订的最佳方法是什么。例如:

我有一个名为doc_1_1的文件。现在,如果用户上传另一个文件。旧文件应命名为doc_1_1_revision_1,后命名为doc_1_1_revision_2,依此类推,新文件应命名为doc_1_1。

保存此内容的最佳方法是什么? 还是Google提供了任何可处理此类情况的东西?

谢谢。

2 个答案:

答案 0 :(得分:3)

您想上传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指定修订版本的文件

答案 1 :(得分:0)

您的目标是:

  

我有一个名为doc_1_1的文件。现在,如果用户上传另一个文件。旧   文件应命名为doc_1_1_revision_1,然后再命名为   doc_1_1_revision_2等,新文件应为doc_1_1。

Google云存储不支持此命名技术。作为上载过程的一部分,您将必须在客户端实现此功能。

另一个选项是启用“对象版本控制”,其中以前具有相同名称的对象仍将保留。最后上传的实例是“当前”版本。

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

Object Versioning