How do I empty an Amazon S3 bucket using a lifecycle configuration rule?

Last updated: 2021-04-02

I have an Amazon Simple Storage Service (Amazon S3) bucket that stores millions of objects. I want to empty the bucket so that I won't be charged for storage anymore. How can I empty the bucket using a lifestyle configuration rule?

Resolution

Follow these steps to create a lifecycle configuration rule that expires current versions of objects and permanently delete previous versions of objects:

1.    Open the Amazon S3 console.

2.    From the list of buckets, choose the bucket that you want to empty.

3.    Choose the Management tab.

4.    Choose Create lifecycle rule.

5.    For Lifecycle rule name, enter a rule name.

6.    For Choose a rule scope, select This rule applies to all objects in the bucket.

7.    Select I acknowledge that this rule will apply to all objects in the bucket.

8.    For Lifecycle rule actions, select the following to create a lifecycle rule:
Expire current versions of objects
Permanently delete previous versions of objects

9.    Then, create a second lifecycle rule by selecting the following:
Delete expired delete markers or incomplete multipart uploads

10.    Choose Create rule.

Amazon S3 runs lifecycle rules once every day. After the first time Amazon S3 runs the rules, all objects eligible for expiration are marked for deletion. You're no longer charged for objects that are marked for deletion. It can take a few days for the rules to run until the bucket is empty. This is because expiring object versions and cleaning up delete markers are asynchronous steps. For more information, see Expiring objects.