Облачная платформаEvolution

Управлять жизненным циклом объектов (Lifecycle) в Object Storage


Object Storage позволяет создавать, просматривать, изменять и удалять конфигурацию Lifecycle бакета.

Управлять Lifecycle можно с помощью AWS S3 API и сторонних инструментов. Раздел содержит инструкции по работе с конфигурацией через AWS S3 API и AWS CLI.

Доступ к управлению Lifecycle зависит от роли пользователя. Просматривать конфигурацию могут пользователи с ролями s3e.viewer-acl, s3e.auditor и s3e.admin, создавать, редактировать и удалять — s3e.editor-acl и s3e.admin.

Примечание

В качестве адреса хранилища <endpoint> указывайте s3.cloud.ru.

Просмотреть список правил

Чтобы просмотреть список правил Lifecycle в бакете:


Выполните команду:

aws s3api get-bucket-lifecycle-configuration \
--bucket <bucket_name> \
--endpoint-url https://<endpoint>

Где <bucket_name> — название бакета.

Пример вывода:

{
"Rules": [
{
"Expiration": {
"Days": 3
},
"ID": "expire-folder-file-after-3-days",
"Prefix": "folder/file",
"Status": "Enabled"
}
]
}

Подробнее о структуре конфигурации Lifecycle.

Если конфигурация Lifecycle не задана, вернется ошибка «NoSuchLifecycleConfiguration» с кодом 404.

Создать, изменить или удалить правило

AWS S3 API и AWS CLI не позволяют управлять правилами точечно. Чтобы добавить, отредактировать или удалить правило, обновите конфигурацию Lifecycle бакета целиком.


  1. (Опционально) Если в бакете уже настроены правила Lifecycle и их нужно полностью или частично сохранить, получите текущую конфигурацию Lifecycle бакета.

  2. Создайте новую конфигурацию Lifecycle или внесите изменения в текущую: добавьте новое правило, отредактируйте или удалите существующее. Сохраните актуальную конфигурацию в json-файл.

    Пример конфигурации:

    {
    "Rules": [
    {
    "ID": "delete-old-logs",
    "Status": "Enabled",
    "Filter": {
    "Prefix": "logs/"
    },
    "Expiration": {
    "Days": 30
    }
    }
    ]
    }

    Правило задает удаление объектов с префиксом logs/ через 30 дней после загрузки.

    Подробнее о структуре правил Lifecycle — в разделе Общие принципы и структура правил Lifecycle.

    Внимание

    При создании первого правила задается тип фильтрации для всех правил Lifecycle бакета. Все последующие правила конфигурации должны будут использовать тот же тип фильтрации.

    Подробнее об ограничениях при выборе типа фильтрации.

  3. Обновите конфигурацию Lifecycle бакета:

    aws s3api put-bucket-lifecycle-configuration \
    --bucket <bucket_name> \
    --endpoint-url https://<endpoint> \
    --lifecycle-configuration file://<path_to_lifecycle_configuration>

    Где:

    • <bucket_name> — название бакета.

    • <path_to_lifecycle_configuration> — путь к json-файлу с конфигурацией.

Конфигурация Lifecycle бакета будет обновлена. Обновленные правила будут действовать как для уже загруженных объектов, так и для объектов, которые будут загружены позже.

Внимание

Когда все условия правила выполняются, действие по правилу не совершается моментально. Хранение данных тарифицируется до тех пор, пока они не удалены физически.

Подробнее о сроке выполнения правила.

Удалить конфигурацию

Чтобы удалить конфигурацию Lifecycle бакета:

Внимание

Инструкция описывает удаление всех правил Lifecycle бакета — после выполнения шагов ниже восстановить правила будет невозможно. Чтобы удалить одно или несколько правил, используйте инструкцию по изменению конфигурации.


Выполните команду:

aws s3api delete-bucket-lifecycle \
--bucket <bucket_name> \
--endpoint-url https://<endpoint>

Где <bucket_name> — название бакета.

Конфигурация Lifecycle бакета будет удалена.