Управление сроком хранения данных в 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.
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!