Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Версионирование объектов в S3

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

В этой статье мы рассмотрим работу с версиями на примере AWS CLI.

Включение версионирования

Версионирование можно включить в панели управления или с помощью клиентов, например AWS CLI, S3 Browser и других.

Через панель управления

Перейдите во вкладку «Настройки» и нажмите кнопку «Изменить» рядом с пунктом «История версий отключена».

Image 20250905124535245

В открывшемся окне подтвердите включение версионирования, нажав кнопку «Включить версионирование». Обратите внимание, что в дальнейшем отключить версионирование для бакета не получится — только приостановить.

При помощи AWS CLI

Чтобы включить версионирование в S3-бакете с помощью AWS CLI, выполните команду:

    

Проверить, что версионирование включено, можно с помощью команды:

    

Ожидаемый результат:

    

Проверка работы версионирования

Разберем принцип работы версионирования на примере.

Создадим тестовый файл:

    

Загрузим его в бакет:

    

Обновим файл:

    

Снова загрузим его:

    

Теперь у файла есть несколько версий. Проверим их:

    

Пример результата:

    

Важные нюансы:

  • Каждая версия объекта занимает место в бакете.
  • Версии объектов не отображаются в панели управления или других S3-клиентах.
  • Даже при удалении объекта все версии остаются в бакете.

Работа с версиями в панели управления

Для просмотра списка версий в панели управления, в объектном менеджере, нажмите на три точки рядом с нужным объектом и выберите пункт «История версий».

Image 20250905174549903

В открывшемся меню при наведении на нужную версию объекта отобразится список доступных действий.

Image 20250905175324581

  1. Ссылка на файл — для версии объекта будет создан presigned URL.

  2. Скачивание файла.

  3. Восстановление версии объекта — позволяет сделать выбранную версию текущей.

  4. Удаление версии объекта — при нажатии на три точки появляется возможность удалить нужную версию.

Работа с версиями с помощью AWS CLI

Для управления версиями объектов в S3 доступны несколько команд.

Список версий конкретного объекта

Чтобы просмотреть все версии конкретного объекта в бакете, используйте команду:

    

Список всех объектов с их версиями

Вывести список всех объектов в бакете вместе с их версиями можно так:

    

Скачивание определенной версии объекта

Если нужно скачать конкретную версию объекта, выполните команду:

    

Где:

  • --key — имя объекта в бакете.
  • --version-id — идентификатор версии (получается из list-object-versions).
  • testlocalfile.txt — имя файла, в который будет сохранена скачанная версия.

Восстановление определенной версии объекта

Если объект был обновлен или удален, можно восстановить его прежнюю версию, скопировав ее поверх текущей:

    

Где:

  • <имя_бакета>/<имя_объекта> — полный путь к объекту в бакете.
  • ?versionId=<id_версии> — версия, которую необходимо восстановить.

После выполнения команды в бакете появится новая версия объекта, которая идентична восстановленной.

Удаление конкретной версии объекта

Чтобы удалить конкретную версию объекта, выполните команду:

    

Где --version-id — ID версии объекта, которую необходимо удалить.

Настройка автоматического удаления старых версий

Чтобы старые версии файлов не накапливались, можно настроить жизненный цикл объектов.

Создадим файл lifecycle.json:

    

Это правило удалит версии файлов, старше 30 дней. Текущие версии останутся нетронутыми.

Применим политики жизненного цикла:

    

Проверим, что политика применилась:

    
Была ли статья полезна?
Ваша оценка очень важна