Управление сроком хранения данных в S3-хранилище

Настройка автоматического удаления файлов с помощью правил жизненного цикла.

S3 хранилище — это распределённая система хранения данных, где каждый файл сохраняется в специальном контейнере, называемом бакетом.
Доступ к данным осуществляется через S3 API, что делает такие хранилища совместимыми с инструментами AWS и другими.


Жизненный цикл в S3-хранилище — это механизм, позволяющий задавать автоматические действия с объектами через определённый промежуток времени.
Наиболее распространённый сценарий — автоматическое удаление файлов после заданного числа дней или в указанную дату.
Это помогает оптимизировать использование места, очищать временные данные, резервные копии и другие объекты, срок хранения которых ограничен.


На данный момент хранилище поддерживает:

  1. Expiration (удаление объектов по сроку хранения)
    Удаляет объекты через определённое количество дней после загрузки или в конкретную дату.

  2. Prefix (префикс)
    Позволяет ограничить действие правила для определённого пути (например, только для папки /logs/).

  3. Ограничения

    • Минимальное значение — 1 день.
    • Дата удаления должна быть указана на 00:00 UTC.

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

Создайте файл lifecycle.json:

{
  "Rules": [
    {
      "ID": "DeleteAfter30Days",
      "Prefix": "",
      "Status": "Enabled",
      "Expiration": {
        "Days": 30
      }
    }
  ]
}

Примените конфигурацию к бакету:

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

Проверить текущую конфигурацию:

aws s3api get-bucket-lifecycle-configuration \
  --bucket your-bucket-name

Удалить правило жизненного цикла:

aws s3api delete-bucket-lifecycle \
  --bucket your-bucket-name

Удаление файлов в определённой папке

Если необходимо удалить файлы только из конкретной директории, например logs/, можно использовать префикс.

{
  "Rules": [
    {
      "ID": "DeleteLogsAfter7Days",
      "Prefix": "logs/",
      "Status": "Enabled",
      "Expiration": {
        "Days": 7
      }
    }
  ]
}

После применения этого правила будут удаляться только объекты, расположенные по пути logs/....


Удаление файлов по конкретной дате

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

{
  "Rules": [
    {
      "ID": "DeleteAtMidnight",
      "Prefix": "",
      "Status": "Enabled",
      "Expiration": {
        "Date": "2025-12-01T00:00:00Z"
      }
    }
  ]
}

Важно

Время нужно указывать в формате UTC и только на 00:00.


Помощь

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

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам