By default, buckets do not have lifecycle management enabled. To set or
modify lifecycle configuration for an existing bucket you make a PUT request
that is scoped to the bucket and you use the lifecycle
query string
parameter. You must include an XML document in the request body that contains
the lifecycle configuration. Notice that you cannot set lifecycle configuration
on a new bucket that you are creating.
You must have FULL_CONTROL
permission to set or modify lifecycle
configuration for an existing bucket. Also, you must be authenticated to use the
PUT Bucket method.
Query string parameters
Parameter | Description | Required |
---|---|---|
lifecycle |
You use this to change the lifecycle configuration on an existing bucket. You must provide the LifecycleConfiguration document in the request body. | No |
Request headers
Request body elements
The following request body elements are applicable only if you use the
lifecycle
query string parameter to specify the lifecycle
configuration for an existing bucket.
Element | Description |
---|---|
LifecycleConfiguration |
Defines the lifecycle management policies for the bucket, which contains
0 or more (up to 100) rules. Use an empty element (for example,
<LifecycleConfiguration/> ) to disable lifecycle
management for the bucket. |
Rule |
Defines a lifecycle management rule, which is made of an action and the condition under which the action will be taken. |
Action |
Defines the action to be taken, which must contain one and only one specific action element. Required. |
Delete |
Action element to delete objects in the bucket. |
SetStorageClass |
Action element to change the storage class of an object. |
Condition |
Defines the condition under which the action will be taken, which must contain at least one specific condition element. Required. |
Age |
Condition element that matches objects over the specified age (in days). |
CreatedBefore |
Condition element that matches objects created before midnight of the specified date in UTC. The value is an ISO date string without a time zone, e.g. "2013-01-15". |
IsLive |
Condition element relevant only for versioned objects. Matches live
objects if the value is true , or archived objects if the
value is false . |
MatchesStorageClass |
Condition element that matches objects of the specified storage class. This condition can be added multiple times to the same rule in order to cover more than one storage class. | NumberOfNewerVersions |
Condition element relevant only for versioned objects. If the value is N, the condition is satisfied when there are at least N versions (including the live version) newer than this version of the object. |
Request syntax
PUT /?lifecycle HTTP/1.1 Host: <bucket>.storage.googleapis.com Date: <date and time of the request> Content-Length: <request body length> Content-Type: <MIME type of the body> Authorization: <authentication string> <xml_document_defining_lifecycle_configuration>
Response headers
The request can return a variety of response headers depending on the request headers you use.
Response body elements
The response does not include an XML document in the response body.
Example
The following sample enables lifecycle management for a bucket named example.com. For more examples, see the Managing Lifecycles page.
Request
PUT /example.com?lifecycle HTTP/1.1 Host: storage.googleapis.com Content-Length: 220 Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <?xml version="1.0" ?> <LifecycleConfiguration> <Rule> <Action> <Delete/> </Action> <Condition> <Age>30</Age> </Condition> </Rule> </LifecycleConfiguration>
Response
HTTP/1.1 200 OK Date: Thu, 12 Mar 2012 03:38:42 GMT Expires: Mon, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate Content-Length: 0 Content-Type: text/html