Хранение и резервные копии

Жизненный цикл объектов

1 мин чтения

Правила жизненного цикла автоматически удаляют объекты по истечении заданного срока: старые бэкапы, логи, временные файлы, предыдущие версии и незавершенные загрузки. Это поддерживает порядок в хранилище и снижает расходы.

В примерах используется AWS CLI, настроенный для UzCloud. Замените my-bucket на имя своего бакета.

Создание правил

Опишите правила в файле lifecycle.json. В этом примере:

  • объекты с префиксом logs/ удаляются через 30 дней;
  • объекты с префиксом tmp/ удаляются через 1 день;
  • предыдущие версии всех объектов удаляются через 14 дней после того, как перестали быть текущими;
  • незавершенные мультипарт-загрузки удаляются через 3 дня.
{
  "Rules": [
    {
      "ID": "expire-logs",
      "Status": "Enabled",
      "Filter": { "Prefix": "logs/" },
      "Expiration": { "Days": 30 }
    },
    {
      "ID": "expire-tmp",
      "Status": "Enabled",
      "Filter": { "Prefix": "tmp/" },
      "Expiration": { "Days": 1 }
    },
    {
      "ID": "old-versions-and-uploads",
      "Status": "Enabled",
      "Filter": { "Prefix": "" },
      "NoncurrentVersionExpiration": { "NoncurrentDays": 14 },
      "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 3 }
    }
  ]
}

Примените правила к бакету и проверьте их:

aws s3api put-bucket-lifecycle-configuration --bucket my-bucket \
  --lifecycle-configuration file://lifecycle.json

aws s3api get-bucket-lifecycle-configuration --bucket my-bucket

Чтобы удалить все правила: aws s3api delete-bucket-lifecycle --bucket my-bucket.

Примечание

Правила применяются в фоне, как правило раз в сутки, поэтому объекты могут удаляться с задержкой до суток после окончания срока. Объекты под защитой Object Lock не удаляются до окончания блокировки.

Внимание

Правило с пустым префиксом и Expiration удаляет все объекты бакета по истечении срока. Перед применением правил внимательно проверьте фильтры.

Совет

См. также: