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

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

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

Например, после объекта A удаляется, он появится в Удалённые объекты списке. Если позже вы загрузите другой объект с тем же именем A, новый объект A появится в Объекты список, но ранее удалённый объект A исчезнет из Удалённые объекты список. Подробнее смотрите Рисунок 4.
Рисунок 4 Загрузка одноимённого объекта после удаления оригинального

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

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