Управление сроком хранения данных в S3-хранилище
Настройка автоматического удаления файлов с помощью правил жизненного цикла.
S3 хранилище  — это распределённая система хранения данных, где каждый файл сохраняется в специальном контейнере, называемом бакетом.
Доступ к данным осуществляется через S3 API, что делает такие хранилища совместимыми с инструментами AWS и другими.
Жизненный цикл в S3-хранилище — это механизм, позволяющий задавать автоматические действия с объектами через определённый промежуток времени.
Наиболее распространённый сценарий — автоматическое удаление файлов после заданного числа дней или в указанную дату.
Это помогает оптимизировать использование места, очищать временные данные, резервные копии и другие объекты, срок хранения которых ограничен.
На данный момент хранилище поддерживает:
- 
Expiration (удаление объектов по сроку хранения) 
 Удаляет объекты через определённое количество дней после загрузки или в конкретную дату.
- 
Prefix (префикс) 
 Позволяет ограничить действие правила для определённого пути (например, только для папки/logs/).
- 
Ограничения - Минимальное значение — 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.
Помощь
Если у вас возникли трудности или необходима помощь, пожалуйста, создайте запрос в службу поддержки через тикет-систему, и мы с радостью вам поможем.