Lifecycle

Lifecycle management allows you to automate the deletion of objects and their versions to optimize costs and adhere to compliance requirements.

The Lifecycle comprises rules with actions applied to objects within a bucket. These policies help automate processes that manage the lifecycle of your data.

Use cases

  • Object Expiration: Automatically deletes objects no longer needed after a certain period, such as temporary files, logs, or other transient data. It helps to declutter the storage and reduce costs.

  • Regulatory Compliance: Assists in meeting legal and compliance requirements by deleting objects according to the defined Lifecycle rules.

  • Version Control: Manages multiple versions of objects by automatically deleting the non-current object versions and saves storage costs.

  • Temporary Storage: Stores data generated from batch processing or other workloads and deletes these provisional data when no longer needed using the object expiration Lifecycle actions.

Lifecycle actions

A Lifecycle rule supports the following actions:

  • Expire current versions.

  • Permanently delete noncurrent versions of objects.

  • Delete expired object delete markers.

  • Delete incomplete multipart uploads.

Expire current versions

With this action, you can specify a period after which the object's current version must expire. Depending on whether the Versioning is enabled for a bucket or not, the action Expire current versions of the object impacts in the following ways:

  • If the Versioning is enabled for the bucket, then the expiration of the current version of an object does not result in the deletion of the object data from the storage. Instead, when the object's current version reaches its expiration date, a "delete marker" is created for this object and retained as its "current version"; the object data transitions to a non-current object version.

  • If the Versioning is not enabled for the bucket, then the current versions are the only versions of objects in your bucket. When the object reaches its expiration date, it is permanently deleted from the storage.

When the Expire current versions action is set for a bucket that uses Versioning, the system automatically deletes the expired delete markers as part of the lifecycle processing. An expired delete marker is a delete marker for which there is no corresponding object data because all non-current versions of the object have been deleted. This functionality aids in maintaining a clean and organized bucket and retains only necessary data.

Permanently delete non-current version of objects

This action is applicable only if the bucket uses Versioning. Permanently deleting non-current versions of objects takes place after the specified retention period, and it helps to ensure the removal of outdated versions of objects from the storage.

A non-current object version refers to those that are superseded by a newer object version or a delete marker. When a non-current version of an object reaches its scheduled expiration, it is permanently deleted from the storage. The expiration scheduling for non-current versions of objects is based on the number of days since the objects became non-current, which is the number of days since being superseded by a newer version or a "delete marker."

If the bucket has Object Lock enabled, then the non-current object versions are not deleted before their defined retention period is completed. Suppose the expiration date of a non-current object version (based on your configured expiration schedule) comes before the end of the object version's lock period, then the Object Lock setting overpowers. The system retains the non-current object version until the end of its lock period. Shortly after the lock period concludes, the system automatically deletes the non-current object version, ensuring adherence to expiration and retention policies.

Delete expired object delete markers

This action is applicable only if the bucket uses Versioning and the Expire current versions schedule has been set. In a versioning-enabled bucket, when you delete the current version of an object, a "delete marker" replaces that object version and becomes the new current object version. All the older versions of the object are retained in the system and remain retrievable.

However, if all older versions subsequently expire (through the execution of the expiration rule for non-current versions), an orphaned delete marker remains. With the Delete expired object delete markers action, you enable the system to automatically remove a delete marker 48 hours after all the older versions of the object have been expired or deleted.

Delete incomplete multi-part uploads

This action stops all incomplete multi-part uploads and allows the automatic deletion of incomplete multi-part uploads, freeing up storage space and ensuring the bucket remains clean and organized. The Multi-part upload facilitates the uploading of large objects in parts. However, if an upload is incomplete, it consumes storage space.

Manage Lifecycle

You can manage Lifecycle using the web console, API, and CLI.

Web console

1. In the DCD, go to Menu > Storage > IONOS S3 Object Storage.

2. From the Buckets list, choose the bucket for which the Lifecycle rule must be added and click Bucket settings.

3. Go to the Lifecycle setting listed under Data management and click Add a rule.

4. Enter the following details to configure the Lifecycle rule:

  • Lifecycle Rule name: Enter a name to identify the rule uniquely.

  • Set Rule Scope: Choose whether to apply the Lifecycle rule to all objects in the bucket or limit to objects filtered by the prefix. The prefix is subject to a single Lifecycle rule.

  • Select an action: Choose one or more from the following Lifecycle actions to apply to the objects in the bucket:

    • Expire current versions: You can choose to enter the number of days after object creation should the current object version expire or select a date from the calendar shown, after which the current object version must expire. The rule application varies depending on whether the bucket is versioned or not.

    • Permanently delete noncurrent versions of objects: Mention the number of days after the object version becomes non-current should it be permanently deleted.

    • Delete expired object delete markers: Select this action to remove all object delete markers and improve performance. You cannot apply this action if the Expire current versions action is selected.

    • Delete incomplete multipart uploads: Mention the number of days after upload initiation should the incomplete multipart uploads be deleted.

For more information, see Lifecycle actions.

5. Click Save.

Result: The Lifecycle rule is successfully added.

Info: Using the same Lifecycle bucket settings, you can turn on, off, modify, and delete an existing rule. It takes up to a few minutes for the deletion of a Lifecycle rule to propagate fully.

IONOS S3 Object Storage API

Use the Lifecycle API to manage the Lifecycle rules.

CLI tool

Use the CLI to manage Lifecycle configuration.

Limitations

  • Currently, IONOS S3 Object Storage only supports Standard storage class. You cannot use lifecycle rules to transition objects to another storage class.

  • A maximum of 1,000 rules can be set in the Lifecycle configuration.

  • Multiple Lifecycle rules can be created for a bucket, each applying to a different object prefix. However, more than one Lifecycle rule cannot be set for the same object prefix.

  • If the bucket uses Object Lock, non-current object versions cannot be deleted before the completion of their defined retention period.

  • The NewerNoncurrentVersions setting is not supported for the NoncurrentVersionExpiration option.

Versioning

Versioning allows you to keep multiple versions of the same object. For more information, see Versioning.

Last updated