Files
scripts-admin-debian/backup_and_restore/scaleway/list-glacier-objects.sh
2024-09-03 16:07:23 +02:00

43 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# This script counts the number of objects stored in the Glacier storage class within an S3 bucket.
# It optionally filters the list based on a specified directory within the bucket.
# Example usage:
# ./count-glacier-objects.sh my-bucket my-directory
# (Counts Glacier objects in the 'my-directory' directory within the 'my-bucket' bucket)
# ./count-glacier-objects.sh my-bucket
# (Counts all Glacier objects in the 'my-bucket' bucket)
# Check the number of arguments
if [[ $# -lt 1 || $# -gt 2 ]]; then
echo "Usage: $0 <bucket_name> [directory_name]"
exit 1
fi
# Retrieve the arguments
BUCKET="$1"
DIRECTORY="$2"
# Function to sanitize names (though not necessary for an output file in this version)
sanitize_name() {
echo "$1" | tr -dc '[:alnum:]-_.'
}
# Construct the AWS CLI command
COMMAND="aws s3api list-objects-v2 --bucket $BUCKET --query \"Contents[?StorageClass=='GLACIER']\""
# Add the prefix if a directory is specified
if [[ -n "$DIRECTORY" ]]; then
COMMAND+=" --prefix $DIRECTORY"
fi
# Finalize the command to count the objects
COMMAND+=" --output text | wc -l"
# Execute the command and retrieve the number of Glacier files
NUM_FILES=$(eval $COMMAND)
# Display the number of Glacier files
echo "Number of files in Glacier storage class to be restored: $NUM_FILES"