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)
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.
| 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. |
| 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
|
| 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
|
| 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 |
| Parameter | Type | Description |
|---|---|---|
| NoncurrentDays | Integer | Definition Number of days an object stays historical before the specified rule takes effect. Range
|
| StorageClass | String | Definition The storage class to which the object is transitioned. Range
|
| Parameter | Type | Description |
|---|---|---|
| NoncurrentDays | Integer | Definition Number of days an object stays historical before the specified rule takes effect. Range
|
| Parameter | Type | Description |
|---|---|---|
| DaysAfterInitiation | Integer | Definition Number of days fragments are present before being deleted Range N/A |
| 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. |
| 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. |
| 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.
| 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.
References
- For more information about bucket lifecycle rules, see Lifecycle Management.
- For details about the billing items involved in API operations, see Billing Items.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot