Облачная платформаEvolution

Действия с объектами в правиле Lifecycle


Действия правила Lifecycle определяют, что и когда нужно сделать с объектами, которые попадают под условия фильтрации.

Object Storage поддерживает следующие действия:

В одном правиле можно совместить несколько действий: например, настроить для определенной группы объектов удаление текущих и неактуальных версий. Примеры конфигурации Lifecycle.

Внимание

Когда все условия правила выполняются, действие по правилу не совершается моментально. Хранение данных тарифицируется до тех пор, пока они не удалены физически.

Подробнее о сроке выполнения правила.

Expiration

Удаляет объекты по истечении заданного срока.

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

Действие не выполнится, если объект защищен блокировкой (Object Lock).

Параметры

Days — количество дней с момента загрузки объекта или его текущей версии. Значение — от 1 до 4 294 967 295.

NoncurrentVersionExpiration

Удаляет неактуальные версии объектов, в том числе delete-маркеры, если соблюдены условия:

  • Истек заданный срок.

  • Количество более новых неактуальных версий объекта достигло заданного.

Версии удаляются безвозвратно.

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

Действие не выполнится, если версия защищена блокировкой (Object Lock).

Параметры

  • NoncurrentDays — количество дней с момента, когда версия стала неактуальной. Значение — от 1 до 4 294 967 295.

  • NewerNoncurrentVersions (опционально) — количество более новых неактуальных версий объекта, которые нужно сохранить. Значение — от 0 до 4 294 967 295.

Правило срабатывает, если выполняются оба условия. Если параметр NewerNoncurrentVersions не задан или равен 0, удаление зависит только от срока NoncurrentDays.

AbortIncompleteMultipartUpload

Отменяет multipart-загрузки, которые не были завершены за заданный срок, и удаляет загруженные части объекта. Не затрагивает успешно завершенные загрузки.

Статус версионирования бакета не влияет на работу правила.

Параметры

DaysAfterInitiation — количество дней с момента начала multipart-загрузки. Значение — от 1 до 4 294 967 295.

Работа действий при разных состояниях версионирования

Таблица ниже описывает работу действий Lifecycle при разных состояниях версионирования бакета.

Действие Lifecycle

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

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

Версионирование приостановлено

Удаление по правилу Expiration

Объект удаляется безвозвратно.

Если текущая версия объекта — не delete-маркер:

  • Для объекта создается delete-маркер с уникальным versionId, не равным null.

  • Созданный delete-маркер становится текущей версией.

  • Остальные версии объекта и delete-маркеры сохраняются в истории версий.

Если текущая версия объекта — delete-маркер и у объекта есть другие версии, изменений с объектом не происходит. Если delete-маркер — единственная оставшаяся версия объекта, он удаляется.

Если текущая версия объекта — не delete-маркер:

  • Для объекта создается delete-маркер. Его versionId равен null.

  • Созданный delete-маркер становится текущей версией.

  • Если у объекта уже есть версия или delete-маркер с versionId, равным null, версия или маркер перезаписывается новым delete-маркером. Восстановить перезаписанные данные нельзя.

  • Версии объекта и delete-маркеры с versionId, не равными null, сохраняются в истории версий.

Если текущая версия объекта — delete-маркер, изменений с объектом не происходит.

Удаление по правилу NoncurrentVersionExpiration

Правило можно создать, но оно не будет работать: неактуальных версий нет.

Неактуальные версии объекта, в том числе delete-маркеры, удаляются безвозвратно, если они удовлетворяют условиям правила. Другие версии объекта сохраняются в истории версий.