如何确定 Google 存储对象是活动的还是非当前的?

How to find out whether Google storage object is live or noncurrent?

Google 存储文档讲述了 Object Versioning。有两种对象版本:实时和非当前。

gsutil 允许使用 -a 开关列出非当前版本和实时版本:https://cloud.google.com/storage/docs/using-object-versioning#list.

此外,我可以通过提供 versions: true option to the Bucket.getFiles method 以编程方式列出所有版本。

但是我还没有找到任何方法来以编程方式查明特定对象版本是实时的还是非当前的。 File object 中似乎没有 属性 或方法。

给定一个 File 实例,找出这个问题的正确方法是什么?

通过查看 REST API,对象的 live/noncurrent 版本没有状态。每个对象资源表示都有一个世代号。

我假设您必须为此应用自己的算法

  • 在版本选项为 true 的单个对象上使用列表 API (getFiles)
  • 最高代为live版本,其他为非当前版本
  • 除了 timeDeleted 填充在最高代(实时版本删除的时间戳)。因此所有版本都不是当前版本。