VK Cloud logo
Обновлена27 марта 2024 г. в 14:33

Lifecycle

Все доступные методы для работы с жизненным циклом объектов:

  • Get Bucket Lifecycle Configuration — просмотр конфигурации жизненного цикла в бакете.
  • Configure Bucket Lifecycle — настройка правил конфигурации жизненного цикла.
  • Delete Bucket Lifecycle — удаление конфигурации жизненного цикла.

Общий вид конфигурации:

1<LifecycleConfiguration>
2    <Rule>
3        <ID>Описание правила</ID>
4        <Status>{Enabled|Disabled}</Status>
5        <Filter>
6           <Prefix>префикс_ключа</Prefix>
7        </Filter>
8
9        <Transition>
10            <StorageClass>Идентификатор класса хранилища</StorageClass>
11            <!-- <Date> или <Days> -->
12        </Transition>
13        ...
14        <Expiration>
15            <!-- <Date> или <Days> -->
16        </Expiration>
17        ...
18    </Rule>
19    <Rule>
20      ...
21    </Rule>
22    ...
23</LifecycleConfiguration>

Get Bucket Lifecycle Configuration

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

Операция GET возвращает информацию по конфигурации жизненного цикла, установленной для бакета.

Запрос:

1GET /?lifecycle HTTP/1.1
2Host: my-test-bucket1.hb.vkcs.cloud
3x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
4x-amz-date: 20200831T001757Z
5Authorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date,Signature=e92e48fb16dad3d9d332460adde86493b8930262d9385e002b0408e17a2781f4

Ответ:

1HTTP/1.1 200 OK
2Date: Mon, 31 Aug 2020 17:44:35 GMT
3x-amz-request-id: tx000000000000000023935-005a613936-fcf92-ru-mska
4Content-Type: application/xml
5Content-Length: 488
6Connection: close
7
8<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
9  <Rule>
10    <ID>Expire old logs</ID>
11    <Prefix>logs/</Prefix>
12    <Status>Enabled</Status>
13    <Expiration>
14      <Days>90</Days>
15    </Expiration>
16  </Rule>
17
18  <Rule>
19    <ID>Remove uncompleted uploads</ID>
20    <Status>Enabled</Status>
21    <Prefix/>
22    <AbortIncompleteMultipartUpload>
23      <DaysAfterInitiation>1</DaysAfterInitiation>
24    </AbortIncompleteMultipartUpload>
25  </Rule>
26</LifecycleConfiguration>

Configure Bucket Lifecycle

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

Операция PUT создает новую конфигурацию жизненного цикла для бакета или замещает существующую конфигурацию жизненного цикла.

Запрос:

1PUT /?lifecycle HTTP/1.1
2Host: my-test-bucket1.hb.vkcs.cloud
3Content-Length: 488
4Content-Type: application/xml
5x-amz-content-sha256: 34850007f92ec3331486b48fd7db15f48315fe73c4a9b135e6d9fd629276c1e7
6x-amz-date: 20200831T000345Z
7Authorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=content-md5;content-type;host;x-amz-content-sha256;x-amz-date,Signature=fc07a541c2acdbf7527eba358afa0a6d460c9bfec539dd29dfa6b5b854aae109
8
9<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
10  <Rule>
11    <ID>Expire old logs</ID>
12    <Prefix>logs/</Prefix>
13    <Status>Enabled</Status>
14    <Expiration>
15      <Days>90</Days>
16    </Expiration>
17  </Rule>
18
19  <Rule>
20    <ID>Remove uncompleted uploads</ID>
21    <Status>Enabled</Status>
22    <Prefix/>
23    <AbortIncompleteMultipartUpload>
24      <DaysAfterInitiation>1</DaysAfterInitiation>
25    </AbortIncompleteMultipartUpload>
26  </Rule>
27</LifecycleConfiguration>

Ответ:

1HTTP/1.1 200 OK
2Date: Mon, 31 Aug 2020 17:31:43 GMT
3x-amz-request-id: tx00000000000000010ad2b-005a6135e2-f647d-ru-mska
4Content-Length: 0
5Content-Type: application/xml
6Connection: close

Delete Bucket Lifecycle

Операция DELETE удаляет конфигурацию жизненного цикла из указанного бакета. Удаляются все правила конфигурации жизненного цикла из подресурса жизненного цикла, связанного с бакетом, что позволяет исключать срок действия из объектов. Как следствие, сервис больше не будет автоматически удалять объекты согласно правилам, содержащимся в удаленной конфигурации жизненного цикла.

Запрос:

1DELETE /?lifecycle HTTP/1.1
2Host: my-test-bucket1.hb.vkcs.cloud
3x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
4x-amz-date: 20200831T204101Z
5Authorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date,Signature=376fe41764fe6493a33160b36055d8f617b92f9337bce0cf91bc9c5b1e7482b2

Ответ:

1HTTP/1.1 204 No Content
2Date: Mon, 31 Aug 2020 18:13:21 GMT
3Connection: close