При использовании S3 может потребоваться управлять жизненным циклом объектов, чтобы оптимизировать использование ресурсов и избежать переполнения хранилища. Для этого можно настроить правила жизненного цикла (Lifecycle rules), которые автоматически удаляют объекты через заданное количество дней.
Рассмотрим, как настроить правила жизненного цикла для объектов в S3-бакете, используя утилиту AWS CLI.
Чтобы настроить удаление файлов через определённое время, создайте файл с конфигурацией правил жизненного цикла. Например, если вам нужно хранить файлы в папке logs
только один день, создайте файл lifecycle.json
со следующим содержимым:
{
"Rules": [
{
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Expiration": {"Days": 1}
},
]
}
Prefix: указывает папку (или префикс), к которой будет применяться правило. В этом примере файлы из папки logs/
будут автоматически удаляться через один день.
Expiration: задаёт срок хранения файлов в днях. Здесь указано, что файлы будут удаляться через один день после загрузки.
Вы можете добавить несколько правил для разных папок или файлов. Например, если у вас есть другая папка logs2
, где файлы должны храниться два дня, просто добавьте дополнительное правило:
{
"Rules": [
{
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Expiration": {"Days": 1}
},
{
"Status": "Enabled",
"Filter": {"Prefix": "logs2/"},
"Expiration": {"Days": 2}
}
]
}
Теперь файлы в папке logs/
будут храниться один день, а в папке logs2/
— два дня.
После создания файла с правилами, загрузите его в ваш S3-бакет с помощью следующей команды:
aws s3api put-bucket-lifecycle-configuration --bucket имя_бакета --lifecycle-configuration file://lifecycle1.json --endpoint-url https://s3.timeweb.cloud
Эта команда применит указанные правила к вашему бакету, и файлы будут автоматически удаляться по истечении заданного срока.
Чтобы убедиться, что правила жизненного цикла были успешно загружены, выполните команду:
aws s3api get-bucket-lifecycle-configuration --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud
Эта команда выведет текущие правила, установленные для вашего бакета.
Если вам нужно удалить все существующие правила жизненного цикла для бакета, выполните следующую команду:
aws s3api delete-bucket-lifecycle --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud
Эта команда удалит все правила жизненного цикла, и файлы больше не будут автоматически удаляться.