OBS может хранить несколько версий объекта. Вы можете быстро искать и восстанавливать разные версии или восстанавливать данные в случае случайных удалений или сбоев приложения.
По умолчанию функция версионирования отключена для новых бакетов в OBS. Поэтому, если вы загрузите объект в бакет, где уже существует объект с тем же именем, новый объект перезапишет существующий.
Figure 1 Версионирование (с существующими объектами)

Figure 2 Версионирование (для новых объектов)

Версия | Описание |
|---|---|
Последняя версия | После включения версионирования каждая операция с объектом приводит к сохранению объекта с новым идентификатором версии. Идентификатор версии, сгенерированный при последней операции, называется последней версией. |
Историческая версия | После включения версионирования каждая операция с объектом приводит к сохранению объекта с новым идентификатором версии. Идентификаторы версий, сгенерированные при операциях, отличных от последней операции, называются историческими версиями. |
Figure 3 Объект с маркером удаления

Например, после удаления объекта A он появится в списке Deleted Objects. Если позже загрузить другой объект с тем же именем A, новый объект A появится в списке Objects, но ранее удалённый объект A исчезнет из списка Deleted Objects. Для получения подробной информации см. Figure 4.
Figure 4 Загрузка одноимённого объекта после удаления оригинального

После включения версионирования для бакета его нельзя отключить, но его можно приостановить. При приостановке версионирования новому загруженному объекту будет присвоен null, а не конкретный идентификатор версии. Если у нового загруженного объекта то же имя, что и у существующего объекта с null‑идентификатором версии, новый объект перезапишет существующий объект.
Figure 5 Версии объектов в сценарии, когда версионирование приостановлено

Если версионирование больше не требуется, его можно приостановить. После приостановки версионирования:
Если вы удалите объект после того, как versioning приостановлен для bucket, будет создан delete marker, независимо от того, имеет ли объект исторические версии. Однако, если versioning отключён, та же операция не создаст delete marker.