- tocdepth
2
Управление жизненным циклом объектов в бакете
«Объектное хранилище S3» позволяет настроить автоматическое удаление отдельных объектов или групп объектов по заданным условиям и расписанию.
Задать конфигурацию жизненных циклов объектов можно только для каждого отдельного бакета. Для загрузки конфигурации можно применять следующие инструменты:
S3 API;
инструменты для работы с S3-совместимыми хранилищами, например — S3cmd, AWS CLI и другие.
Для управления жизненными циклами с помощью S3 API и совместимых с ним инструментов используется конфигурация в формате XML. Часть инструментов могут требовать иные форматы конфигурации, например, для AWS CLI используется формат JSON.
Для загрузки конфигурации жизненного цикла через S3 API в Объектное хранилище S3 необходимо сформировать XML-документ. При скачивании существующей конфигурации вы получите документ такого же формата.
Общий вид конфигурации:
<LifecycleConfiguration>
<Rule>
<ID>Описание правила</ID>
<Status>{Enabled|Disabled}</Status>
<Filter>
<Prefix>префикс_ключа</Prefix>
</Filter>
<Expiration>
<!-- <Date> или <Days> -->
<!-- <ExpiredObjectDeleteMarker> -->
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays>Удаление версий, которые старше указанного количества дней</NoncurrentDays>
</NoncurrentVersionExpiration>
...
</Rule>
<Rule>
...
</Rule>
...
</LifecycleConfiguration>
Описание элементов конфигурации
ID
Уникальный идентификатор правила (необязательный параметр). Может содержать произвольный текст на латинице. Используется для поиска правила в конфигурации.
Status
Статус правила. Правило можно активировать, установив значение
Enabled
, или отключить, установивDisabled
.
Filter
Фильтр объектов. Содержит не более одного элемента
Prefix
. Если фильтр оставить пустым<Filter></Filter>
, то правило будет применяться ко всем объектам в бакете.
Prefix
Префикс ключа. Используется для фильтрации объектов, попадающих под действие правила. Фильтр может содержать только один префикс. Примеры префиксов для ключа
folder/docs/intermnal/ceo
:docs
,docs/
,docs/internal
Expiration
Правило для удаления объекта из хранилища. Содержит элемент
Days
илиDate
, который определяет сроки удаления объекта из хранилища. В одном правиле не может одновременно содержаться оба элемента —Days
иDate
.
Date
Дата исполнения правила. Формат — ISO 8601, например, YYYY-MM-DD. Время — всегда 00:00 UTC.
Days
Интервал исполнения правила. Задается количеством дней после загрузки объекта.
NoncurrentVersionExpiration
Правило для удаления неактивных версий объекта из хранилища. Это правило применяется не ко всему объекту, а только к его неактивным версиям. Содержит элемент
NoncurrentDays
, который определяет сроки исполнения действия правила.
Для загрузки, скачивания и удаления конфигурации используйте методы S3 API.
Конфигурация жизненного цикла объектов для S3cmd аналогична конфигурации для S3 API. Для загрузки, просмотра и удаления конфигурации используйте следующие команды:
// Загрузить политику
s3cmd setlifecycle bucket-lifecycle.xml s3://bucket
// Получить политику
s3cmd getlifecycle s3://bucket
// Удалить политику
s3cmd dellifecycle s3://bucket
Конфигурация жизненного цикла объектов для AWS CLI создается в формате JSON. Пример конфигурации:
{
"Rules": [
{
"ID": "DeleteOldDocs",
"Filter": {
"Prefix": "docs/"
},
"Status": "Enabled",
"Expiration": {
"Days": 180
}
}
]
}
Описание элементов конфигурации
ID
Уникальный идентификатор правила (необязательный параметр). Может содержать произвольный текст на латинице. Используется для поиска правила в конфигурации.
Filter
Фильтр объектов. Содержит не более одного элемента
Prefix
. Если фильтр оставить пустым<Filter></Filter>
, то правило будет применяться ко всем объектам в бакете.
Status
Статус правила. Правило можно активировать, установив значение
Enabled
, или отключить, установивDisabled
.
Expiration
Правило для удаления объекта из хранилища. Содержит элемент
Days
илиDate
, который определяет сроки удаления объекта из хранилища. В одном правиле не может одновременно содержаться оба элемента —Days
иDate
.
Готовую конфигурацию необходимо поместить в файл в формате JSON. Для загрузки, просмотра и удаления конфигурации через AWS CLI используйте следующие команды:
// Загрузка конфигурации в хранилище
aws s3api put-bucket lifecycle –bucket <BUCKET> –lifecycle-configuration file://bucket-lifecycle.json
// Запрос конфигурации
aws s3api get-bucket lifecycle –bucket <BUCKET>
// Удаление конфигурации
aws s3api delete-bucket lifecycle –bucket <BUCKET>
для Dev & Test