Skip to content

Instantly share code, notes, and snippets.

@alchen99
Created January 31, 2022 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alchen99/fed413b4c55dd929bd69317c06c73971 to your computer and use it in GitHub Desktop.
Save alchen99/fed413b4c55dd929bd69317c06c73971 to your computer and use it in GitHub Desktop.
delAllObjectVersions.sh
#!/bin/bash
# We are assuming default region and profile
bucket=$1
set -e
echo "Removing all versions from $bucket"
versions=`aws s3api list-object-versions --bucket $bucket |jq '.Versions'`
markers=`aws s3api list-object-versions --bucket $bucket |jq '.DeleteMarkers'`
let count=`echo $versions |jq 'length'`-1
if [ $count -gt -1 ]; then
echo "removing files"
for i in $(seq 0 $count); do
key=`echo $versions | jq .[$i].Key |sed -e 's/\"//g'`
versionId=`echo $versions | jq .[$i].VersionId |sed -e 's/\"//g'`
echo "aws s3api delete-object --bucket $bucket --key $key --version-id $versionId &"
aws s3api delete-object --bucket $bucket --key $key --version-id $versionId &
done
fi
let count=`echo $markers |jq 'length'`-1
if [ $count -gt -1 ]; then
echo "removing delete markers"
for i in $(seq 0 $count); do
key=`echo $markers | jq .[$i].Key |sed -e 's/\"//g'`
versionId=`echo $markers | jq .[$i].VersionId |sed -e 's/\"//g'`
echo "aws s3api delete-object --bucket $bucket --key $key --version-id $versionId &"
aws s3api delete-object --bucket $bucket --key $key --version-id $versionId &
done
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment