Как узнать, является ли объект хранилища Google текущим или нет?

#google-cloud-storage #google-api-nodejs-client

#google-облачное хранилище #google-api-nodejs-client

Вопрос:

Документация Google Storage рассказывает об управлении версиями объектов. Существует два вида версий объекта: текущие и неточные.

gsutil разрешить перечисление как текущих, так и текущих версий с помощью -a switch: https://cloud.google.com/storage/docs/using-object-versioning#list .

Кроме того, я могу перечислить все версии программно, указав versions: true параметр для Bucket.getFiles метода.

Однако я не нашел никакого способа программно выяснить, является ли конкретная версия объекта текущей или неточной. Похоже, в объекте File для этого нет свойства или метода.

Каков правильный способ выяснить это для данного File экземпляра?

Ответ №1:

Просматривая REST API, нет состояния для текущей / неточной версии объектов. У вас есть номер генерации для каждого представления ресурса объекта.

Я предполагаю, что вы должны применить для этого алгоритм

  • Используйте List API (GetFiles) для одного объекта с параметром version равным true
  • Самое высокое поколение — это текущая версия, остальные — неточные
  • Кроме того, что timeDeleted заполняется для самого высокого поколения (временная метка удаления текущей версии). Поэтому все версии являются неточными.

Комментарии:

1. Спасибо, timeDeleted ключ метаданных кажется правильным ответом. Кроме того, gsutils ls -L или gsutils stat показывать то же время, Noncurrent time что и . Однако, чтобы быть принятым, этот ответ должен быть немного отредактирован, поскольку timeDeleted одного достаточно без сравнения номеров поколений.

2. Правильно, я забыл несколько слов (и исправил). Время, указанное в самом высоком номере версии, означает, что все версии являются неточными.

3. Спасибо. В моем коде я перечисляю версии не для одного объекта , а для всех объектов в корзине с версиями. И для каждого файла (объекта) Я полагаюсь timeDeleted только на метаданные.

4. Кстати, я обнаружил, что поля метаданных задокументированы здесь и здесь .