AWS S3 Shell Scripts
November 02, 2025

This repository contains shell scripts to manage Amazon S3 buckets and objects using AWS CLI.

Source Code: https://github.com/SarinHem/AWS-Lab.git

Scripts cover bucket creation, deletion, uploading files, listing buckets/objects, syncing files, and backup file renaming.


Prerequisites

  • AWS CLI installed and configured (aws configure) with appropriate IAM permissions.
  • Bash shell environment (Linux, macOS, WSL).
  • Network access to AWS.

Script List and Usage

| Script Path              | Description                                        | Usage Example                          |
|--------------------------|----------------------------------------------------|----------------------------------------|
| ./create-bucket          | Create an S3 bucket (region `ap-southeast-1`)      | ./create-bucket my-unique-bucket       |
| ./delete-bucket          | Delete an S3 bucket (use `--force` to empty first) | ./delete-bucket my-bucket --force      |
| ./put-object             | Upload a local file to a bucket                    | ./put-object my-bucket ./file.txt      |
| ./list-bucket            | List all S3 buckets in your AWS account            | ./list-bucket                          |
| ./list-object            | List objects in a bucket, optionally by prefix     | ./list-object my-bucket logs/          |
| ./sync                   | Sync local directory to S3 with deletion enabled   | ./sync ./local-dir my-bucket backup/   |
| ./backup/file_got_rename | Custom script for backup file rename               | ./backup/file_got_rename               |

Usage Details

Create Bucket

./create-bucket <bucket-name>

Delete Bucket

./delete-bucket <bucket-name> [--force]

--force empties the bucket before deleting.

Upload File (Put Object)

./put-object <bucket-name> <local-file> [s3-key]

Uploads file to S3 bucket. If s3-key is omitted, filename is used.

List Buckets

./list-bucket

List Objects

./list-object <bucket-name> [prefix]

Sync Directory to S3

./sync <local-dir> <bucket-name> [s3-prefix]

Syncs local folder to bucket and deletes extra files in S3.

Backup File Rename

./backup/file_got_rename

Refer to script comments for details.


Notes

  • All scripts assume AWS region ap-southeast-1 (Singapore). Adjust inside scripts if needed.
  • Make sure scripts have execute permission:
    chmod +x ./create-bucket ./delete-bucket ./put-object ./list-bucket ./list-object ./sync ./backup/file_got_rename
    
  • Ensure your AWS CLI credentials have required permissions.

Troubleshooting

  • Test AWS credentials:
    aws sts get-caller-identity
    
  • Use --dryrun option inside sync script if supported for preview.
  • Bucket names must be globally unique.