Действия правила Lifecycle определяют, что и когда нужно сделать с объектами, которые попадают под условия фильтрации.
Object Storage поддерживает следующие действия:
Expiration — удаление текущих версий объектов.
NoncurrentVersionExpiration — удаление неактуальных версий объектов.
AbortIncompleteMultipartUpload — отмена незавершенных multipart-загрузок.
В одном правиле можно совместить несколько действий: например, настроить для определенной группы объектов удаление текущих и неактуальных версий. Примеры конфигурации Lifecycle.
Когда все условия правила выполняются, действие по правилу не совершается моментально. Хранение данных тарифицируется до тех пор, пока они не удалены физически.
Удаляет объекты по истечении заданного срока.
Если у объекта несколько версий, правило применяется к текущей. При выключенном версионировании объект удаляется безвозвратно, при включенном — помечается как удаленный с возможностью восстановления. Если версионирование приостановлено, некоторые версии объекта могут удалиться безвозвратно. Подробнее о работе Expiration при разных состояниях версионирования.
Действие не выполнится, если объект защищен блокировкой (Object Lock).
Параметры
Days — количество дней с момента загрузки объекта или его текущей версии. Значение — от 1 до 4 294 967 295.
Удаляет неактуальные версии объектов, в том числе delete-маркеры, если соблюдены условия:
Истек заданный срок.
Количество более новых неактуальных версий объекта достигло заданного.
Версии удаляются безвозвратно.
Действие применяется только в бакетах с включенным или приостановленным версионированием, если у объектов есть неактуальные версии и соблюдаются условия их удаления. Если версионирование в бакете выключено, правило можно создать, но действие не будет выполняться. После включения версионирования правило начнет работать автоматически, обновлять его не требуется. Подробнее о работе NoncurrentVersionExpiration при разных состояниях версионирования.
Действие не выполнится, если версия защищена блокировкой (Object Lock).
Параметры
NoncurrentDays — количество дней с момента, когда версия стала неактуальной. Значение — от 1 до 4 294 967 295.
NewerNoncurrentVersions (опционально) — количество более новых неактуальных версий объекта, которые нужно сохранить. Значение — от 0 до 4 294 967 295.
Правило срабатывает, если выполняются оба условия. Если параметр NewerNoncurrentVersions не задан или равен 0, удаление зависит только от срока NoncurrentDays.
Отменяет multipart-загрузки, которые не были завершены за заданный срок, и удаляет загруженные части объекта. Не затрагивает успешно завершенные загрузки.
Статус версионирования бакета не влияет на работу правила.
Параметры
DaysAfterInitiation — количество дней с момента начала multipart-загрузки. Значение — от 1 до 4 294 967 295.
Таблица ниже описывает работу действий Lifecycle при разных состояниях версионирования бакета.
Действие Lifecycle | Версионирование выключено | Версионирование включено | Версионирование приостановлено |
|---|---|---|---|
Удаление по правилу Expiration | Объект удаляется безвозвратно. | Если текущая версия объекта — не delete-маркер:
Если текущая версия объекта — delete-маркер и у объекта есть другие версии, изменений с объектом не происходит. Если delete-маркер — единственная оставшаяся версия объекта, он удаляется. | Если текущая версия объекта — не delete-маркер:
Если текущая версия объекта — delete-маркер, изменений с объектом не происходит. |
Удаление по правилу NoncurrentVersionExpiration | Правило можно создать, но оно не будет работать: неактуальных версий нет. | Неактуальные версии объекта, в том числе delete-маркеры, удаляются безвозвратно, если они удовлетворяют условиям правила. Другие версии объекта сохраняются в истории версий. | |