Obtaining Bucket Lifecycle Configuration

Functions

This operation obtains the bucket lifecycle configuration.

To perform this operation, you must have the GetLifecycleConfiguration permission. By default, only the bucket owner can perform this operation. The bucket owner can grant the permission to other users by configuring the bucket policy or user policy.

Request Syntax

GET /?lifecycle HTTP/1.1
Host: bucketname.obs.region.example.com
Date: date
Authorization: authorization

Request Parameters

This request contains no message parameters.

Request Headers

This request uses common headers. For details, see Table 3.

Request Elements

This request involves no elements.

Response Syntax

HTTP/1.1 status_code
Date: date
Content-Type: application/xml
Date: date
Content-Length: length

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LifecycleConfiguration xmlns="http://obs.region.example.com/doc/2015-06-30/">
    <Rule>
        <ID>id</ID>
        <Prefix>prefix</Prefix>
        <Status>status</Status>
        <Expiration>
            <Date>date</Date>
        </Expiration>
        <NoncurrentVersionExpiration>
            <NoncurrentDays>days</NoncurrentDays>
        </NoncurrentVersionExpiration>
        <Transition>
         <Date>date</Date>
         <StorageClass>WARM</StorageClass>
        </Transition>
        <Transition>
         <Date>date</Date>
         <StorageClass>COLD</StorageClass>
        </Transition>
        <NoncurrentVersionTransition>
         <NoncurrentDays>30</NoncurrentDays>
         <StorageClass>WARM</StorageClass>
        </NoncurrentVersionTransition>
        <NoncurrentVersionTransition>
         <NoncurrentDays>60</NoncurrentDays>
         <StorageClass>COLD</StorageClass>
        </NoncurrentVersionTransition>
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule>
</LifecycleConfiguration>

Response Headers

The response to the request uses common headers. For details, see Table 1.

Response Elements

This response contains elements to detail the configuration. Table 1 describes the elements.

Table 1 Response elements for lifecycle configuration

Element

Description

Date

Specifies that OBS executes lifecycle rules for objects before the specified date. The date must be compliant with the ISO8601 format, and the time must be compliant with the UTC format of 00:00:00. For example, 2018-01-01T00:00:00.000Z indicates that objects whose last modification time is earlier than 2018-01-01T00:00:00.000Z are deleted or transitioned to another storage class. Objects whose last modification time is equal to or later than the specified time are not deleted or transitioned to another storage class.

Type: string

Ancestor node: Expiration, Transition

Days

Specifies the number of days (since the latest update to the latest object version) after which the lifecycle rule is executed.

Type: integer

Ancestor node: Expiration, Transition

StorageClass

The storage class to which the object is transitioned.

Type: string

Value options: WARM, COLD

Ancestor node: Transition, NoncurrentVersionTransition

Transition

Transition time and the object storage class after transition (valid only for the latest object version).

Type: XML

Children node: Date or Days

Ancestor node: Rule

Expiration

Container for the object expiration rule.

Type: XML

Children node: Date or Days

Ancestor node: Rule

ID

Unique identifier of a rule. The value can contain a maximum of 255 characters.

Type: string

Ancestor node: Rule

LifecycleConfiguration

Container for lifecycle rules. You can add multiple rules. The total size of the rules cannot exceed 20 KB.

Type: XML

Children node: Rule

Ancestor node: none

NoncurrentDays

Number of days when the specified rule takes effect after the object becomes a historical version.

Type: integer

Ancestor node: NoncurrentVersionExpiration, NoncurrentVersionTransition

NoncurrentVersionTransition

Transition time of historical object versions and the object storage class after transition.

Type: XML

Children node: NoncurrentDays, StorageClass

Ancestor node: Rule

NoncurrentVersionExpiration

Container for the expiration time of objects' historical versions. If versioning is enabled or suspended for a bucket, you can set NoncurrentVersionExpiration to delete objects whose life cycles have expired.

Type: XML

Children node: NoncurrentDays

Ancestor node: Rule

AbortIncompleteMultipartUpload

Container for specifying when the not merged parts (fragments) in an incomplete upload will be deleted.

Type: XML

Children node: DaysAfterInitiation

Ancestor node: Rule

DaysAfterInitiation

Specifies the number of days since the initiation of an incomplete multipart upload that OBS will wait before deleting the not merged parts (fragments) of the upload.

Type: integer

Ancestor node: AbortIncompleteMultipartUpload

Prefix

Object name prefix identifying one or more objects to which the rule applies.

Type: string

Ancestor node: Rule

Rule

Container for a specific lifecycle rule.

Type: container

Ancestor node: LifecycleConfiguration

Status

Indicates whether the rule is enabled.

Type: string

Ancestor node: Rule

Value options: Enabled, Disabled

Error Responses

Table 2 describes possible special errors in the request.

Table 2 Special error

Error Code

Description

HTTP Status Code

NoSuchLifecycleConfiguration

The bucket lifecycle configuration does not exist.

404 Not Found

For other errors, see Table 2.

Sample Request

GET /?lifecycle HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.example.com
Accept: */*
Date: WED, 01 Jul 2015 03:06:56 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:/Nof9FCNANfzIXDS0NDp1IfDu8I=

Sample Response

HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF260000016436BA5684FF5A10370EDB
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSEMKZSIeboCA1eAukgYOOAd7oX3ZONn
Content-Type: application/xml
Date: WED, 01 Jul 2015 03:06:56 GMT
Content-Length: 919

<?xml version="1.0" encoding="utf-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>delete-2-days</ID>
    <Status>Enabled</Status>
    <Expiration>
      <Days>2</Days>
    </Expiration>
    <NoncurrentVersionExpiration>
      <NoncurrentDays>5</NoncurrentDays>
    </NoncurrentVersionExpiration>
    <Transition>
      <Days>30</Days>
      <StorageClass>WARM</StorageClass>
    </Transition>
    <Transition>
      <Days>60</Days>
      <StorageClass>COLD</StorageClass>
    </Transition>
    <NoncurrentVersionTransition>
      <NoncurrentDays>30</NoncurrentDays>
      <StorageClass>WARM</StorageClass>
    </NoncurrentVersionTransition>
    <NoncurrentVersionTransition>
      <NoncurrentDays>60</NoncurrentDays>
      <StorageClass>COLD</StorageClass>
    </NoncurrentVersionTransition>
    <AbortIncompleteMultipartUpload>
        <DaysAfterInitiation>10</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>