Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты
Управление жизненным циклом объекта

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

Когда следует применять к объектам конфигурацию жизненного цикла?

Правила для конфигурации жизненного цикла устанавливаются для объектов со строго определенным жизненным циклом. Например:

  • если вы загружаете в бакет журнал событий с определенной периодичностью, приложение может использовать эти журналы в течение недели или месяца после их создания. Затем вам может потребоваться их удалить.

Как настроить конфигурацию жизненного цикла?

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

Сервис предоставляет набор операций API, которые используются для управления конфигурацией жизненного цикла на контейнере ( PutBucketLifecycle, GetBucketLifecycle, DeleteBucketLifecycle). Сервис закрепляет конфигурацию за контейнером.

Также конфигурация настраивается программным путем c помощью библиотек-оболочек SDK сервиса. При необходимости можно создавать прямые вызовы API REST.

Элементы конфигурации жизненного цикла

Вы можете создавать конфигурацию жизненного цикла в виде XML-файла, в котором указывается одно или несколько правил для жизненного цикла.

<LifecycleConfiguration>
    <Rule>
         ...
    </Rule>
    <Rule>
         ...
    </Rule>
</LifecycleConfiguration>

Каждое правило включает в себя указанные ниже элементы.

  • Метаданные правила, включающие в себя идентификатор правила (ID) и его состояние (Status), по которому определяется, активно правило или нет. Если правило неактивно, то сервис не будет выполнять действия, указанные в правиле.
  • Фильтр, осуществляющий выборку объектов, к которым применимо правило. Фильтр устанавливается при помощи префикса ключа объекта.
  • Одно или несколько действий по окончанию срока с указанием даты, когда сервису необходимо выполнить данное действие или действия. Также можно указать вместо даты определенный период времени в жизненном цикле объекта.

Далее будет приведено описание XML-элементов в конфигурации жизненного цикла.

Элемент ID

Конфигурация жизненного цикла может содержать до 1000 правил. Элемент <ID> служит уникальным идентификатором для определенного правила. Максимальная длина элемента ID — 255 символов.

Элемент Status

Допустимые значения элемента <Status> — Enabled и Disabled. Если правило неактивно, то сервис не будет выполнять действия, указанные в правиле.

Элемент Filter

Правило жизненного цикла может применяться ко всем объектам или поднабору объектов в бакете, что зависит от указываемого в правиле элемента <Filter>.

Фильтрация объектов устанавливается при помощи префикса объекта. Ниже приведены примеры установки фильтра.

  • Установка фильтра при помощи префиксов позволяет указать правило жизненного цикла, применимое к поднабору объектов согласно префиксу имени объекта, например при указании logs/ правило будет применяется к объектам logs/mylog.txt, logs/temp1.txt и logs/test.txt, но не будет применяться к объекту example.jpg.

<LifecycleConfiguration>
    <Rule>
        <Filter>
           <Prefix>logs/</Prefix>
        </Filter>
        <Expiration>

           <Days>365</Days>

        </Expiration>

    </Rule>
    ...
</LifecycleConfiguration>

При необходимости применения действия по жизненному циклу к поднабору объектов с различными префиксами имени объекта указываются несколько правил. В каждом правиле указывается фильтр-префикс. Например, для описания действия по жизненному циклу, применимого к объектам с префиксами ключа projectA/ и projectB/, указываются два следующих правила:

<LifecycleConfiguration>
    <Rule>
        <Filter>
           <Prefix>projectA/</Prefix>
        </Filter>
        <Expiration>

            <Days>5</Days>

        </Expiration>

    </Rule>

    <Rule>
        <Filter>
           <Prefix>projectB/</Prefix>
        </Filter>

        <Expiration>

            <Days>365</Days>

        </Expiration>
    </Rule>
</LifecycleConfiguration>

Элементы описания действий по жизненному циклу

Сервис может выполнять определенные действия во время жизненного цикла объекта. Для этого необходимо указать одно или несколько предопределенных правил в правиле жизненного цикла с помощью следующего элемента:

  • элемент действия по окончанию срока, позволяющий выполнить действия по удалению объектов, указанных в правиле. Это означает, что все объекты, на которые применится данное действие, станут недоступными в сервисе. 

Политики жизненного цикла по окончанию срока действия объектов не удаляют незавершенные многокомпонентные загрузки. 

Правила жизненного цикла с указанием возраста объекта

Вы можете указать количество дней, отсчитываемых с даты последнего изменения объекта, по истечению которых сервис может выполнить заданное действие.

При указании количества дней в действиях по окончанию срока в конфигурации жизненного цикла, обратите внимание на следующие моменты:

  • заданное действие выполняется после того, как пройдет указанное количество дней, отсчитываемых с даты внесения последних изменений в объект;
  • сервис вычисляет время выполнения действия путем добавления указанного в правиле количества дней ко времени внесения последних изменений в объект.

Правила жизненного цикла с указанием определенной даты

Для указания действия в правиле жизненного цикла можно указывать дату для выполнения заданного действия сервисом. При наступлении указанной даты сервис выполняет действие для всех отобранных объектов (отбор основывается на параметрах фильтра).

Если указана прошедшая дата в действии по жизненному циклу, то сразу появляется возможность применять данное действие по жизненному циклу ко всем отобранным объектам.

Важно!

Действие с указанием определенный даты не является однократным. По прошествии указанной даты сервис продолжает выполнять действие до тех пор, пока элемент правила Status находится в состоянии Enabled.

Например, при указании даты в действии по окончанию срока, которое должно удалить все объекты (без установленной фильтрации в правиле), сервис удалит все объекты в бакете в указанную дату. Сервис также будет удалять все новые объекты, создаваемые вами в бакете. Для того, чтобы предотвратить выполнение данного действия по жизненному циклу, необходимо удалить это действие из конфигурации жизненного цикла, отключить правило или удалить его из конфигурации жизненного цикла.

Формат даты должен соответствовать стандарту ISO 8601.