Overview Configuration samples
This page describes how to set Object Lifecycle Management on a bucket and how to view a bucket's current lifecycle configuration. Lifecycle configurations apply to all current and future objects in the bucket.
Required roles
To get the permissions that you need to set and manage Object Lifecycle Management for a bucket, ask your administrator to grant you the Storage Admin (roles/storage.admin) role on the bucket. This predefined role contains the permissions required to set and manage Object Lifecycle Management for a bucket. To see the exact permissions required, expand the Required permissions section:
Required permissions
storage.buckets.getstorage.buckets.list- This permission is only required if you plan on using the Google Cloud console to perform the instructions on this page.
storage.buckets.update
You might also be able to get these permissions with custom roles.
For information about granting roles on buckets, see Set and manage IAM policies on buckets.
Set the lifecycle configuration for a bucket
Console
- In the Google Cloud console, go to the Cloud Storage Buckets page.
In the bucket list, find the bucket you want to enable, and click the bucket's name.
Click the Lifecycle tab.
The lifecycle rules page appears. From here you can edit or delete existing rules. To add a new rule:
Click Add a rule.
In the page that appears, specify a configuration.
Select the action to take when an object meets the conditions.
Click Continue.
Select the conditions under which an action is taken.
Click Continue.
Click Create.
To learn how to get detailed error information about failed Cloud Storage operations in the Google Cloud console, see Troubleshooting.
Command line
Create a JSON file with the lifecycle configuration rules you would like to apply. See configuration examples for sample JSON files.
Use the
gcloud storage buckets updatecommand with the--lifecycle-fileflag:gcloud storage buckets update gs://BUCKET_NAME --lifecycle-file=LIFECYCLE_CONFIG_FILE
Where:
BUCKET_NAMEis the name of the relevant bucket. For example,my-bucket.LIFECYCLE_CONFIG_FILEis the path for the JSON file that you created in Step 1.
Client libraries
For more information, see the Cloud Storage C++ API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage C# API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage Go API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage Java API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage Node.js API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage PHP API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage Python API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket: For more information, see the Cloud Storage Ruby API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. The following sample sets a lifecycle configuration on a bucket: The following sample removes any existing lifecycle configuration from on a bucket:C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Terraform
You can use a Terraform resource to set a lifecycle configuration for a bucket managed by Terraform. To set a lifecycle configuration on an existing bucket that isn't yet managed by Terraform, you must first import the existing bucket.
To find out whether a lifecycle condition is supported by Terraform, see the Terraform documentation for the condition block.
REST APIs
JSON API
Have gcloud CLI installed and initialized, which lets you generate an access token for the
Authorizationheader.Create a JSON file with the lifecycle configuration rules you would like to apply. See configuration examples for sample JSON files.
Use
cURLto call the JSON API with aPATCHBucket request:curl -X PATCH --data-binary @LIFECYCLE_CONFIG_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"
Where:
LIFECYCLE_CONFIG_FILEis the path for the JSON file that you created in Step 2.BUCKET_NAMEis the name of the relevant bucket. For example,my-bucket.
XML API
Have gcloud CLI installed and initialized, which lets you generate an access token for the
Authorizationheader.Create an XML file with the lifecycle configuration rules you would like to apply. See configuration examples for sample XML files.
Use
cURLto call the XML API with aPUTBucket request andlifecyclequery string parameter:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?lifecycle"
Where:
XML_FILE_NAMEis the path for the XML file that you created in Step 2.BUCKET_NAMEis the name of the relevant bucket. For example,my-bucket.
Check the lifecycle configuration for a bucket
Console
- In the Google Cloud console, go to the Cloud Storage Buckets page.
In the bucket list, the lifecycle status of each bucket is found in the Lifecycle column.
You can click this status to add, view, edit, and delete rules.
To learn how to get detailed error information about failed Cloud Storage operations in the Google Cloud console, see Troubleshooting.
Command line
Use the gcloud storage buckets describe command with the --format flag:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(lifecycle_config)"
Where BUCKET_NAME is the name of the bucket whose lifecycle configuration you want to view. For example, my-bucket.
Client libraries
For more information, see the Cloud Storage C++ API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage C# API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage Go API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage Java API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage Node.js API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage PHP API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage Python API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. For more information, see the Cloud Storage Ruby API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries. C++
C#
Go
Java
Node.js
PHP
Python
Ruby
REST APIs
JSON API
Have gcloud CLI installed and initialized, which lets you generate an access token for the
Authorizationheader.Use
cURLto call the JSON API with aGETBucket request:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"
Where
BUCKET_NAMEis the name of the relevant bucket. For example,my-bucket.
XML API
Have gcloud CLI installed and initialized, which lets you generate an access token for the
Authorizationheader.Use
cURLto call the XML API with aGETBucket request and alifecyclequery string parameter:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?lifecycle"
Where
BUCKET_NAMEis the name of the relevant bucket. For example,my-bucket.
What's next
- Learn more about Object Lifecycle Management, including the available lifecycle actions and lifecycle conditions.
- Explore lifecycle configuration examples.