AWS S3 vs Google Cloud Storage

Complete command comparison for cloud storage operations

Amazon S3 (AWS CLI)
Configuration
$ aws configure
AWS Access Key ID [None]: YOUR_ACCESS_KEY
AWS Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: ap-south-1
Default output format [None]: json
$ aws sts get-caller-identity
Google Cloud Storage (gsutil)
Configuration
$ gcloud auth login
$ gcloud projects list
$ gcloud config set project PROJECT_ID
$ gsutil ls

Basic Operations

Basic Single File Upload
# Ubuntu
$ aws s3 cp /var/www/mainweb.com/public/upload/logo.png s3://u18-evolute-library/upload/
# Windows
$ aws s3 cp "C:\Users\akashkumar\Downloads\images\logo.png" s3://u18-evolute-library/upload/
Basic Single File Upload
# Ubuntu
$ gsutil cp /var/www/mainweb.com/public/upload/file.jpg gs://u18-evolute-library/upload/
# Windows
$ gsutil cp "C:\Users\akashkumar\Downloads\images\file.jpg" gs://u18-evolute-library/upload/
Basic Upload All Files
# Ubuntu
$ aws s3 cp /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/ --recursive
# Windows
$ aws s3 cp "C:\Users\akashkumar\Downloads\images" s3://u18-evolute-library/upload/ --recursive
Basic Upload All Files
# Ubuntu
$ gsutil cp /var/www/mainweb.com/public/upload/* gs://u18-evolute-library/upload/
# Windows
$ gsutil cp "C:\Users\akashkumar\Downloads\images\*" gs://u18-evolute-library/upload/

Intermediate Operations

Intermediate Sync (Upload New/Changed Files)
# Ubuntu
$ aws s3 sync /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/
# Windows
$ aws s3 sync "C:\Users\akashkumar\Downloads\images" s3://u18-evolute-library/upload/
Intermediate Sync (Upload New/Changed Files)
# Ubuntu
$ gsutil -m rsync -r /var/www/mainweb.com/public/upload/ gs://u18-evolute-library/upload
# Windows
$ gsutil -m rsync -r "C:\Users\akashkumar\Downloads\images" gs://u18-evolute-library/upload
Intermediate Sync with Delete (Mirror)
# Ubuntu
$ aws s3 sync /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/ --delete
# Windows
$ aws s3 sync "C:\Users\akashkumar\Downloads\images" s3://u18-evolute-library/upload/ --delete
Intermediate Sync with Delete (Mirror)
# Ubuntu
$ gsutil -m rsync -r -d /var/www/mainweb.com/public/upload/ gs://u18-evolute-library/upload
# Windows
$ gsutil -m rsync -r -d "C:\Users\akashkumar\Downloads\images" gs://u18-evolute-library/upload

Advanced Operations

Advanced Upload Specific File Types
# Only images
$ aws s3 cp /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/ --recursive --exclude "*" --include "*.jpg" --include "*.png" --include "*.gif"
# Only videos
$ aws s3 cp /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/videos/ --recursive --exclude "*" --include "*.mp4"
Advanced Upload Specific File Types
# Only images
$ gsutil -m cp /var/www/mainweb.com/public/upload/*.{jpg,png,gif} gs://u18-evolute-library/upload
# Only videos
$ gsutil -m cp /var/www/mainweb.com/public/upload/*.mp4 gs://u18-evolute-library/upload/videos/
Advanced Make Files Public
$ aws s3 cp /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/ --recursive --acl public-read

Files available at:
https://u18-evolute-library.s3.amazonaws.com/upload/filename

Advanced Make Files Public
$ gsutil -m acl ch -u AllUsers:R gs://u18-evolute-library/upload/**

Files available at:
https://storage.googleapis.com/u18-evolute-library/upload/filename

Advanced Download from Cloud to Local
# Ubuntu
$ aws s3 cp s3://u18-evolute-library/upload/ /var/www/mainweb.com/public/backup/ --recursive
# Windows
$ aws s3 cp s3://u18-evolute-library/upload/ "C:\Users\akashkumar\Downloads\bucket-backup" --recursive
Advanced Download from Cloud to Local
# Ubuntu
$ gsutil -m cp -r gs://u18-evolute-library/upload /var/www/mainweb.com/public/downloads/
# Windows
$ gsutil -m cp -r gs://u18-evolute-library/upload "C:\Users\akashkumar\Downloads\bucket-backup"

Automation Scripts

Windows Batch Script (sync-to-cloud.bat)
@echo off
echo Starting sync to AWS S3...
aws s3 sync "C:\Users\akashkumar\Downloads\images" s3://u18-evolute-library/upload/ --delete
echo.
echo Starting sync to Google Cloud Storage...
gsutil -m rsync -r -d "C:\Users\akashkumar\Downloads\images" gs://u18-evolute-library/upload
echo.
echo Sync completed!
pause
Ubuntu Shell Script (sync-to-cloud.sh)
#!/bin/bash
echo "Starting sync to AWS S3..."
aws s3 sync /var/www/mainweb.com/public/upload/ s3://u18-evolute-library/upload/ --delete
echo ""
echo "Starting sync to Google Cloud Storage..."
gsutil -m rsync -r -d /var/www/u18evolute.com/public/upload/ gs://u18-evolute-library/upload
echo ""
echo "Sync completed!"

Pro Tips