Last active
May 8, 2023 19:31
-
-
Save snobear/546d707a1e0ca182c743d113560f15d5 to your computer and use it in GitHub Desktop.
Expire all objects in an S3 bucket with a lifecycle rule using aws cli
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# set an s3 bucket to expire after one day. Faster than waiting to delete all the files. | |
# check back after a day or so (depending on size of bucket) and delete the bucket from s3 | |
if [ "$#" -lt 2 ]; then | |
echo "error: run_report expects at least 2 arguments; got $#." | |
echo "Usage:" | |
echo " ./$(basename $0) region bucket" | |
exit 1 | |
fi | |
aws_region=$1 | |
s3_bucket=$2 | |
rm -f lifecycle-expire.json | |
cat << EOF > lifecycle-expire.json | |
{ | |
"Rules": [{ | |
"ID": "cleanup", | |
"Status": "Enabled", | |
"Prefix": "", | |
"Expiration": { | |
"Days": 1 | |
} | |
}] | |
} | |
EOF | |
echo "Added lifecycle policy on S3 bucket $s3_bucket to expire objects after one day." | |
aws s3api put-bucket-lifecycle --bucket $s3_bucket --region $aws_region --lifecycle-configuration file://lifecycle-expire.json |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment