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.get
- storage.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 a- PATCHBucket 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 a- PUTBucket request and- lifecyclequery 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 a- GETBucket 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 a- GETBucket request and a- lifecyclequery 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.