Skip to main content

Automatic object removal via AWS CLI

Lifecycle policies in CDB Object Storage automatically delete objects after a configured number of days, following the AWS S3 lifecycle configuration standard.

Lifecycle policy logic

Object deletion is processed around midnight UTC. The table below shows when an object is deleted based on the scenario.

ScenarioUpload datePolicy setExpiration (days)Deleted on
Policy exists before uploadJan 1Before Jan 11Jan 3
Policy set after uploadJan 1After Jan 11Jan 3
Policy removedJan 1Removed—Never

The midnight UTC processing window means deletion happens at the next processing cycle after the expiration period ends — not at the exact moment the period expires.

Lifecycle configuration elements

AWS CLI uses a JSON configuration file. The file structure is:

{
  "Rules": [
    {
      "ID": "...",
      "Prefix": "",
      "Status": "Enabled",
      "Expiration": {
        "Days": ...
      }
    }
  ]
}
FieldDescription
IDUnique rule identifier — up to 255 characters, letters, digits, and underscores.
PrefixLeave empty to apply the rule to the entire bucket; specify a folder name to scope the rule to that folder only.
Status"Enabled" activates the rule; "Disabled" suspends it without deleting it.
Expiration.DaysNumber of days after which objects are automatically deleted.

AWS CLI lifecycle management

AWS CLI provides three commands for managing lifecycle policies: put-bucket-lifecycle to apply a policy, get-bucket-lifecycle-configuration to verify it, and delete-bucket-lifecycle to remove it.

Applying a lifecycle policy

  1. 1

    Create the configuration file

    Create a lifecycle.json file with the following content:

    {
      "Rules": [
        {
          "ID": "one_day",
          "Prefix": "",
          "Status": "Enabled",
          "Expiration": {
            "Days": 1
          }
        }
      ]
    }
    
    ParameterDescription
    one_dayRule ID.
    "" (empty prefix)The rule applies to the entire bucket.
    "Enabled"The rule is active.
    1Objects are deleted after 1 day.

    To apply the rule to a specific folder, set "Prefix" to the folder name: "Prefix": "deleteme/".

  2. 2

    Apply the policy

    Run the following command from the directory containing lifecycle.json, replacing the placeholder values:

    aws s3api put-bucket-lifecycle --bucket my-bucket --lifecycle-configuration file://lifecycle.json --endpoint-url=https://<storage-hostname>
    
    ParameterDescription
    my-bucketThe name of the bucket.
    <storage-hostname>The storage endpoint hostname from the Details section in the CDB Technical Web Portal — all hostnames are listed in S3 URLs.
  3. 3

    Verify the configuration

    Run the following command to check the current lifecycle configuration:

    aws s3api get-bucket-lifecycle-configuration --bucket my-bucket --endpoint-url=https://<storage-hostname>
    

    The response contains the applied policy as JSON.

Deleting a lifecycle policy

Run the following command to remove the lifecycle policy from the bucket:

aws s3api delete-bucket-lifecycle --bucket my-bucket --endpoint-url=https://<storage-hostname>
ParameterDescription
my-bucketThe name of the bucket.
<storage-hostname>The storage endpoint hostname.

Protect objects from deletion with Object Lock

To prevent objects from being deleted or overwritten, use S3 Object Lock. See Protect objects with Object Lock.