Updated on 2026-04-16 GMT+08:00

Obtaining Bucket Lifecycle Rules

Functions

If a bucket has lifecycle rules configured, you can call this API to obtain the bucket's lifecycle rules. For more information about lifecycle rules, see Lifecycle Management.

Constraints

  • A lifecycle rule can use prefixes and object tags as filters, but it cannot use wildcards, suffixes, or regular expressions.
  • A bucket can have an unlimited number of lifecycle rules, but the XML file of all its rules cannot exceed 20 KB.

Authorization Information

To call this API, you must be the bucket owner or have the permission to obtain the lifecycle configuration of a bucket. You are advised to use IAM or bucket policies for authorization. For details about OBS authorization methods, see Differences Between OBS Permissions Control Methods.

  • If you use IAM for authorization, you need to use either role/policy-based authorization or identity policy-based authorization and configure the required permissions:
    • If you use role/policy-based authorization (IAM v3 APIs in the old IAM version), you need to grant the obs:bucket:GetLifecycleConfiguration permission. For details, see Creating a Custom IAM Policy.
    • If you use identity policy-based authorization (IAM v5 APIs in the new IAM version), you need to grant the obs:bucket:getLifecycleConfiguration permission, as shown in the following table. For details, see Creating a Custom IAM Identity Policy.

      Action

      Access Level

      Resource Type (*: Required)

      Condition Key

      Alias

      Dependencies

      obs:bucket:getLifecycleConfiguration

      Read

      bucket *

      -

      -

      -

      • obs:EpochTime
      • obs:SourceIp
      • obs:TlsVersion
      • obs:CustomDomain
  • If you use bucket policies for authorization, you need to grant the obs:bucket:GetLifecycleConfiguration permission. For details, see Creating a Custom Bucket Policy.

Request Syntax

1
2
3
4
GET /?lifecycle HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Authorization: authorization

URI Parameters

This request contains no message parameters.

Request Headers

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

Request Body

This request contains no request body parameters.

Response Syntax

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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.myhuaweicloud.com/doc/2015-06-30/">
    <Rule> 
        <ID>id</ID> 
        <Filter>
          <And>
             <Prefix>prefix</Prefix> 
             <Tag><Key>key1</Key><Value>value1</Value></Tag>
             <Tag><Key>key2</Key><Value>value2</Value></Tag>
          </And>
        </Filter>
 
        <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> 
    </Rule> 
</LifecycleConfiguration>

Response Headers

This response uses common headers. For details, see Table 1.

Response Body

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

Table 1 Response elements for lifecycle configuration

Parameter

Type

Description

LifecycleConfiguration

XML

Definition

Container for lifecycle configuration rules. Multiple rules can be configured. LifecycleConfiguration is the parent node of Rule.

Range

N/A

Rule

Container

Definition

Container for a specific lifecycle rule.

Range

For details, see Table 2.

Table 2 Rule parameter description

Parameter

Type

Description

Transition

XML

Definition

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

Range

For details, see Table 3.

Default Value

N/A

Expiration

XML

Definition

Container for the object expiration rule.

Range

For details, see Table 4.

NoncurrentVersionTransition

XML

Definition

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

Range

For details, see Table 5.

NoncurrentVersionExpiration

XML

Definition

Container for the expiration time of objects' historical versions. If versioning is enabled or suspended for a bucket, you can set this parameter to delete historical versions of objects that match the lifecycle rule.

Range

For details, see Table 6.

AbortIncompleteMultipartUpload

XML

Definition

Container for specifying when the unassembled parts (fragments) in an incomplete upload will expire.

Range

For details, see Table 7.

Filter

XML

Definition

A specific filter. The lifecycle rule will apply to the objects matching this filter in a bucket. You can filter objects by object name prefix, object tag, or a combination of them.

Range

For details, see Table 8.

ID

String

Definition

ID of a rule.

Range

The value is a string of 0 to 255 characters.

Prefix

String

Definition

Object name prefix. It identifies the objects the rule applies to.

Range

The value must contain 0 to 1,024 characters.

Status

String

Definition

Whether the rule is enabled

Range

  • Enabled: The rule is enabled.
  • Disabled: The rule is disabled.
Table 3 Transition parameter description

Parameter

Type

Description

Date

String

Definition

Specifies the rule to be queried.

Range

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.

Days

Integer

Definition

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

Range

N/A

StorageClass

String

Definition

The storage class to which the object is transitioned.

Range

  • WARM: Infrequent Access storage class
  • COLD: Archive storage class
  • DEEP_ARCHIVE: Deep Archive storage class
Table 4 Expiration parameter description

Parameter

Type

Description

Date

String

Definition

Specifies the rule to be queried.

Range

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.

Days

Integer

Definition

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

Range

N/A

Table 5 NoncurrentVersionTransition parameter description

Parameter

Type

Description

NoncurrentDays

Integer

Definition

Number of days an object stays historical before the specified rule takes effect.

Range

  • If only one transition is involved, the time should be at least one day later.
  • If multiple transitions are involved, the latter transition should be at least one day later than the former transition.
  • Multiple transitions: For the same object, the time its historical versions transition to the Deep Archive storage class must be later than the time they transition to the Archive storage class, and the time of transitioning to the Archive storage class must be later than the time of transitioning to the Infrequent Access storage class.

StorageClass

String

Definition

The storage class to which the object is transitioned.

Range

  • WARM: Infrequent Access storage class
  • COLD: Archive storage class
  • DEEP_ARCHIVE: Deep Archive storage class
Table 6 NoncurrentVersionExpiration parameter description

Parameter

Type

Description

NoncurrentDays

Integer

Definition

Number of days an object stays historical before the specified rule takes effect.

Range

  • If only one transition is involved, the time should be at least one day later.
  • If multiple transitions are involved, the latter transition should be at least one day later than the former transition.
  • Multiple transitions: For the same object, the time its historical versions transition to the Deep Archive storage class must be later than the time they transition to the Archive storage class, and the time of transitioning to the Archive storage class must be later than the time of transitioning to the Infrequent Access storage class.
Table 7 AbortIncompleteMultipartUpload parameter description

Parameter

Type

Description

DaysAfterInitiation

Integer

Definition

Number of days fragments are present before being deleted

Range

N/A

Table 8 Filter parameter description

Parameter

Type

Description

And

XML

Definition

The And logic among filtering criteria. The And logic can be used when both the object name prefix and object tag are used or multiple object tags are used.

Range

For details, see Table 9.

Tag

Container

Definition

Object tag, which is used to identify what objects match the rule.

Range

For details, see Table 10.

Table 9 And parameter description

Parameter

Type

Description

Tag

Container

Definition

Tag element, which is used to identify the objects that can match the current rule.

Range

For details, see Table 10.

Table 10 Tag parameter description

Parameter

Type

Description

Key

String

Definition

The key of the tag.

Range

The key name is case-sensitive and must be unique. It consists of 1 to 128 characters and cannot be left blank. The following characters are not allowed: *<>\,|/?!;

Value

String

Definition

The value of the tag.

Range

The tag value is case-sensitive and consists of 0 to 255 characters. It can be blank and cannot contain the following characters: *<>\,|?!;

Error Responses

Table 11 describes possible special errors in the request.

Table 11 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

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

Sample Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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> 
    <Filter>
      <Prefix>test/</Prefix> 
    </Filter> 
    <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> 
  </Rule>
</LifecycleConfiguration>

Using SDKs to Call APIs

You are advised to use OBS SDKs to call APIs. SDKs encapsulate APIs to simplify development. You can call SDK API functions to access OBS without manually calculating signatures.

Java

Python

C

Go

BrowserJS

.NET

Android

iOS

PHP

Node.js

Harmony: not supported

References