如何确定Google存储对象是实时的还是非实时的?

问题描述

Google存储空间文档介绍了Object Versioning。对象版本有两种:实时版本和非当前版本。

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

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

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

在给定File实例的情况下,找出此错误的正确方法是什么?

解决方法

通过查看REST API,没有显示对象的实时/非当前版本的状态。每个对象资源表示都有一个世代号。

我认为您必须为此应用一种算法

  • 在版本为true的单个对象上使用列表API(getFiles)
  • 最高的版本是实时版本,其他版本是最新版本
  • 除了timeDeleted以外,最高的时间(实时版本删除的时间戳)被填充。因此,所有版本均为最新版本。