Конфигурация жизненных циклов объектов в бакете
Статья создана
Обновлена 15 августа 2025 г.
Object Storage позволяет управлять жизненными циклами объектов в бакете. Для загрузки конфигурации жизненных циклов в Object Storage необходимо сформировать XML-документ, описанный в этом разделе. При скачивании существующей конфигурации, вы получите документ такого же формата.
Общий вид конфигурации:
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult>
Конфигурация может содержать до 1000 правил.
Элементы
| Элемент | Описание |
|---|---|
LifecycleConfiguration |
Корневой элемент XML-документа. Может содержать до 1000 элементов Rule.Путь: LifecycleConfiguration. |
Rule |
Описание правила. Объекты, попадающие под действие правила задаются элементом Filter. Действия над объектами определяются элементами Transition и Expiration. Действий каждого типа может быть несколько.Путь: LifecycleConfiguration\Rule. |
ID |
Уникальный идентификатор правила. Произвольный текст длиной до 255 символов, например "Удалить через 20 дней". Необязательный параметр, который можно использовать для поиска правила в конфигурации. Если идентификатор не указан, то Object Storage генерирует его автоматически. Путь: LifecycleConfiguration\Rule\ID. |
Status |
Статус правила. Правило можно активировать, установив <ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult>, или отключить, установив <Status>Disabled</Status>.Путь: LifecycleConfiguration\Rule\Status. |
Filter |
Фильтр объектов. Содержит не более одного элемента каждого типа: And, Prefix, ObjectSizeGreaterThan, ObjectSizeLessThan, Tag.Если установить пустой фильтр <Filter></Filter>, то правило применяется ко всем объектам в бакете.Путь: LifecycleConfiguration\Rule\Filter. |
ObjectSizeGreaterThan |
Минимальный размер объекта в байтах. Под действие правила попадают объекты, размер которых больше или равен указанному. Фильтр может содержать только один минимальный размер объекта. Путь: LifecycleConfiguration\Rule\Filter\ObjectSizeGreaterThan. |
ObjectSizeLessThan |
Максимальный размер объекта в байтах. Под действие правила попадают объекты, размер которых меньше или равен указанному. Фильтр может содержать только один максимальный размер объекта. Путь: LifecycleConfiguration\Rule\Filter\ObjectSizeLessThan. |
Prefix |
Префикс ключа. Под действие правила попадают объекты с указанным префиксом ключа. Примеры префиксов для ключа some/long/object/key: some, some/, some/lo.Фильтр может содержать только один префикс. Путь: LifecycleConfiguration\Rule\Filter\Prefix. |
Tag |
Метка объекта Под действие правила попадают объекты, которым присвоена указанная метка. Фильтр может содержать только одну метку объекта. Путь: LifecycleConfiguration\Rule\Filter\Tag. |
And |
Логический оператор И (AND) для фильтров.Может содержать любое сочетание следующих элементов: Prefix, ObjectSizeGreaterThan, ObjectSizeLessThan, Tag.Путь: LifecycleConfiguration\Rule\Filter\And. |
Key |
Ключ метки объекта Путь: LifecycleConfiguration\Rule\Filter\Tag\Key. |
Value |
Значение метки объекта Путь: LifecycleConfiguration\Rule\Filter\Tag\Value. |
Transition |
Правило для изменения класса хранилища объекта. Содержит элемент StorageClass, который определяет целевой класс хранилища, а также элемент Date или Days, который определяет срок исполнения действия.Переместить объекты можно из стандартного ( STANDARD) в холодное (COLD) или ледяное (ICE) хранилище, а также из холодного в ледяное хранилище.Для бакетов со включенным версионированием действие будет применяться для текущих версий объектов. Путь: LifecycleConfiguration\Rule\Transition\. |
StorageClass |
Класс хранилища объекта. Путь: LifecycleConfiguration\Rule\Transition\StorageClass. |
Expiration |
Правило для удаления объекта из Object Storage. Содержит элемент Days или Date, который определяет сроки исполнения действия.Дополнительно может содержать ExpiredObjectDeleteMarker — маркер удаления объекта с истекшим сроком действия, который указывает, удалит ли Object Storage маркер удаления при отсутствии неактивных версий.Для бакетов со включенным версионированием действие будет применяться для текущих версий объектов. Путь: LifecycleConfiguration\Rule\Expiration. |
Date |
Дата исполнения правила. Формат — ISO 8601 YYYY-MM-DD. Время — всегда 00:00 UTC.Путь: LifecycleConfiguration\Rule\Expiration\Date. |
Days |
Интервал исполнения правила. Задается количеством дней после загрузки объекта. Минимальное значение — 1. Путь: LifecycleConfiguration\Rule\Expiration\Days. |
NoncurrentVersionTransition |
Правило для изменения класса хранилища неактивных версий объекта. Это правило применяется не ко всему объекту, а только к его неактивным версиям. Содержит элемент StorageClass, который определяет целевой класс хранилища, а также элемент NoncurrentDays, который определяет срок исполнения действия.Переместить объекты можно из стандартного ( STANDARD) в холодное (COLD) или ледяное (ICE) хранилище, а также из холодного в ледяное хранилище.Путь: LifecycleConfiguration\Rule\NoncurrentVersionTransition. |
NoncurrentVersionExpiration |
Правило для удаления неактивных версий объекта из Object Storage. Это правило применяется не ко всему объекту, а только к его неактивным версиям. Содержит элемент NoncurrentDays, который определяет сроки исполнения действия.Путь: LifecycleConfiguration\Rule\NoncurrentVersionExpiration. |
AbortIncompleteMultipartUpload |
Правило для удаления загрузок, не завершенных за указанное количество дней. Содержит элемент DaysAfterInitiation, который определяет срок исполнения правила.Путь: LifecycleConfiguration\Rule\AbortIncompleteMultipartUpload\ DaysAfterInitiation. |
Пример
Приведенное ниже правило для всех объектов, загруженных в бакет, задает:
- Перемещение в холодное хранилище через 30 дней после загрузки в Object Storage.
- Удаление из Object Storage через 365 дней после загрузки.
- Удаление из Object Storage незавершенных загрузок через 5 дней после начала загрузки.
<LifecycleConfiguration>
<Rule>
<ID>Переместить и потом удалить</ID>
<Status>Enabled</Status>
<Filter>
<Prefix></Prefix>
</Filter>
<Transition>
<StorageClass>COLD</StorageClass>
<Days>30</Days>
</Transition>
<Expiration>
<Days>365</Days>
</Expiration>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>5</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>