Перейти к основному содержимому

Примеры конфигураций правил жизненного цикла

Ниже приведены примеры конфигураций в формате JSON, которые можно использовать в объектном хранилище S3.

Удаление объектов по истечении срока хранения

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

  • без версионирования: объект удаляется сразу по истечении срока;
  • с версионированием: удаляется только текущая версия объекта, создается маркер удаления, который становится текущей версией. Предыдущие версии остаются доступными;
  • приостановленное версионирование: создается маркер удаления с идентификатором null, текущая версия удаляется без возможности восстановления, а предыдущие версии сохраняются.

Важно: Удаление происходит асинхронно, то есть объекты исчезают через некоторое время после истечения срока.

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

Это правило удаляет все объекты в бакете через 14 дней после загрузки.

{
"Rules": [
{
"ID": "DeleteAllObjects",
"Status": "Enabled",
"Filter": {
"Prefix": ""
},
"Expiration": {
"Days": 14
}
}
]
}

Удаление объектов с префиксом temp/

Правило удаляет объекты с префиксом temp/ через 7 дней после создания.

{
"Rules": [
{
"ID": "DeleteTemp",
"Status": "Enabled",
"Filter": {
"Prefix": "temp/"
},
"Expiration": {
"Days": 7
}
}
]
}

Удаление объектов с заданными тегами

Правило удаляет объекты с тегами type=logs и category=temp через 7 дней.

{
"Rules": [
{
"ID": "DeleteTaggedObjects",
"Status": "Enabled",
"Filter": {
"And": {
"Prefix": "",
"Tags": [
{
"Key": "type",
"Value": "logs"
},
{
"Key": "category",
"Value": "temp"
}
]
}
},
"Expiration": {
"Days": 7
}
}
]
}

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

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

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

Удаление неактуальных версий через 30 дней

Это правило удаляет все неактуальные версии объектов в бакете через 60 дней после того, как они перестали быть текущими.

{
"Rules": [
{
"ID": "CleanNoncurrentVersions",
"Status": "Enabled",
"Filter": {
"Prefix": ""
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 60
}
}
]
}

Ограничение количества неактуальных версий

Это правило сохраняет только 2 последние неактуальные версии объектов с префиксом documents/ , удаляя более старые. Также задает срок хранения неактуальных версий в 45 дней.

{
"Rules": [
{
"ID": "LimitNoncurrentVersions",
"Status": "Enabled",
"Filter": {
"Prefix": "documents/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 45,
"NewerNoncurrentVersions": 2
}
}
]
}