# Lifecycle

This document provides instructions to manage [<mark style="color:blue;">Lifecycle</mark>](https://docs.ionos.com/sections-test/guides/storage-and-backup/ionos-object-storage/settings/lifecycle) using the CLI. Additionally, these tasks can also be performed using the [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/sections-test/guides/storage-and-backup/settings/lifecycle#dcd) and [<mark style="color:blue;">API</mark>](https://api.ionos.com/docs/s3/v2/#tag/Lifecycle).

{% hint style="info" %}
**Prerequisites:**

* Set up the AWS CLI by following the [<mark style="color:blue;">installation instructions</mark>](https://docs.ionos.com/sections-test/guides/storage-and-backup/ionos-object-storage/s3-tools/awscli/awscli-configure).
* Make sure to consider the supported [<mark style="color:blue;">Endpoints</mark>](https://docs.ionos.com/sections-test/guides/storage-and-backup/ionos-object-storage/endpoints).
* [<mark style="color:blue;">Versioning</mark>](https://docs.ionos.com/sections-test/guides/storage-and-backup/ionos-object-storage/settings/versioning) must be enabled for source and destination buckets.
  {% endhint %}

## Commands

Create a file `lifecycle.json` with the JSON policy:

```
{
  "Rules": [
    {
      "ID": "Delete objects with data/ prefix after 30 days with size",
      "Status": "Enabled",
      "Expiration": {
        "Days": 30
      },
      "Filter": {
        "Prefix": "data/"
      }
    },
    {
      "ID": "Delete objects 60 days after becoming non-current for bucket with Versioning enabled",
      "Status": "Enabled",
      "Filter": {
        "Prefix": "temp/"
      },
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 45
      }
    },
    {
      "ID": "Delete 2022 logs in 2024.",
      "Status": "Enabled",
      "Expiration": {
          "Date": "2024-01-01T00:00:00.000Z"
      },  
      "Filter": {  
        "Prefix": "logs/2022/"
      }
    },
    {
      "ID": "Delete incomplete multipart uploads",
      "Status": "Enabled",
      "AbortIncompleteMultipartUpload": {
        "DaysAfterInitiation": 5
      },
      "Filter": {}
    }  
  ]
}
```

Apply the lifecycle configuration to a bucket:

```
aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration  file://lifecycle.json  --endpoint-url https://s3.eu-central-2.ionoscloud.com

```

Save the bucket’s lifecycle configuration to a file:

```
aws s3api get-bucket-lifecycle-configuration --bucket my-bucket --endpoint-url https://s3.eu-central-2.ionoscloud.com > lifecycle.json

```

Delete the Lifecyle configuration:

```
aws s3api delete-bucket-lifecycle --bucket my-bucket --endpoint-url https://s3.eu-central-2.ionoscloud.com

```
