Skip to main content

S3 Buckets

This guide provides a quick reference for interacting with AWS S3 buckets using the AWS CLI.

Setup​

Install AWS CLI​

If you haven't installed the AWS CLI yet, you can do so using Homebrew on macOS:

Install AWS CLI
brew install awscli

Configure AWS CLI​

Before you can use the CLI, you need to configure it with your AWS credentials:

Configure AWS CLI
aws configure

You will be prompted to enter:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region name (e.g., us-east-1)
  • Default output format (e.g., json, text, or table)

List Buckets​

To list all the S3 buckets in your AWS account:

List S3 Buckets
aws s3 ls
Sample Output

2019-02-20 14:53:51 my-bucket 2019-02-20 14:53:51 my-other-bucket

note

To list buckets, you need to have the s3:ListAllMyBuckets permission.

List Contents of a Bucket​

To list the contents of a specific S3 bucket:

List Bucket Contents
aws s3 ls s3://your-bucket-name/
Sample Output

2019-02-20 14:53:51 1234 file1.txt 2019-02-20 14:53:51 5678 file2.txt 2019-02-20 14:53:51 9012 file3.txt

If your bucket contains "folders" (prefixes), you can navigate into them:

Navigate Prefixes
aws s3 ls s3://your-bucket-name/prefix/
Sample Output

2019-02-20 14:53:51 1234 file1.txt 2019-02-20 14:53:51 5678 file2.txt 2019-02-20 14:53:51 9012 file3.txt

Download a File from S3​

To download a file from an S3 bucket to your local machine, you have two options:

Option 1: Download to the current directory​

Download to Current Directory
aws s3 cp s3://your-bucket-name/path/to/file.ext .
Sample Output

download: s3://your-bucket-name/path/to/file.ext to ./file.ext

Option 2: Download to a specific directory​

Download to Specific Directory
aws s3 cp s3://your-bucket-name/path/to/file.ext /path/to/local/destination/
Sample Output

download: s3://your-bucket-name/path/to/file.ext to /path/to/local/destination/file.ext

Download All Files in a Prefix​

To download all files from a specific prefix (folder) in an S3 bucket, you have two options:

Option 1: Download to the current directory​

Download All to Current Directory
aws s3 cp s3://your-bucket-name/prefix/ . --recursive
Sample Output

download: s3://your-bucket-name/prefix/file1.txt to ./file1.txt download: s3://your-bucket-name/prefix/file2.txt to ./file2.txt download: s3://your-bucket-name/prefix/file3.txt to ./file3.txt

Option 2: Download to a specific directory​

Download All to Specific Directory
aws s3 cp s3://your-bucket-name/prefix/ /path/to/local/destination/ --recursive
Sample Output

download: s3://your-bucket-name/prefix/file1.txt to /path/to/local/destination/file1.txt download: s3://your-bucket-name/prefix/file2.txt to /path/to/local/destination/file2.txt download: s3://your-bucket-name/prefix/file3.txt to /path/to/local/destination/file3.txt

Upload a File to S3​

To upload a file from your local machine to an S3 bucket:

Upload File to S3
aws s3 cp /path/to/local/file.ext s3://your-bucket-name/path/in/bucket/
Sample Output

upload: /path/to/local/file.ext to s3://your-bucket-name/path/in/bucket/file.ext

Remove a File from S3​

To delete a file in an S3 bucket:

Remove File from S3
aws s3 rm s3://your-bucket-name/path/to/file.ext
Sample Output

delete: s3://your-bucket-name/path/to/file.ext

Additional Tips​

  • Use --dryrun to simulate actions without actually making changes.
  • Use --recursive to apply a command to all files in a directory.
  • Use --profile if you manage multiple AWS accounts.

This guide covers the basic commands needed to navigate, download, and manage files in S3 using the AWS CLI. For more advanced usage, refer to the AWS CLI documentation.