Skip to content

Instantly share code, notes, and snippets.

@frizbee
Created June 27, 2025 03:46
Show Gist options
  • Save frizbee/5f4d67d2489392e8f47f4185d09f897b to your computer and use it in GitHub Desktop.
Save frizbee/5f4d67d2489392e8f47f4185d09f897b to your computer and use it in GitHub Desktop.

🧾 Google Cloud Storage CLI Cheatsheet (gsutil)

βœ… Setup

gcloud auth login                        # Authenticate
gcloud config set project [PROJECT_ID]  # Set default project

πŸ“‚ Folder Management (pseudo-directories)

Task Command
Create folder gsutil cp /dev/null gs://bucket/folder/
Upload to folder gsutil cp file.txt gs://bucket/folder/
Delete folder (recursively) gsutil -m rm -r gs://bucket/folder/

πŸ“€ Upload

Task Command
Upload single file gsutil cp file.txt gs://bucket/path/
Upload multiple files gsutil -m cp *.txt gs://bucket/path/
Upload folder gsutil -m cp -r folder/ gs://bucket/

πŸ“₯ Download

Task Command
Download file gsutil cp gs://bucket/file.txt .
Download folder gsutil -m cp -r gs://bucket/folder/ .

πŸ“‹ List

Task Command
List buckets gsutil ls
List files in bucket gsutil ls gs://bucket/
List files recursively gsutil ls -r gs://bucket/folder/

πŸ—‘οΈ Delete

Task Command
Delete file gsutil rm gs://bucket/file.txt
Delete folder gsutil -m rm -r gs://bucket/folder/

πŸ”„ Move/Rename

Task Command
Move file gsutil mv gs://bucket/old.txt gs://bucket/new.txt
Move folder gsutil -m mv gs://bucket/old-folder/ gs://bucket/new-folder/

πŸ” Permissions (ACL)

Task Command
Make file public gsutil acl ch -u AllUsers:R gs://bucket/file.txt
View ACL gsutil acl get gs://bucket/file.txt

πŸ“¦ Lifecycle Management

Task Command
Set lifecycle policy gsutil lifecycle set lifecycle.json gs://bucket
Example (delete after 30 days) see below ↓
{
  "rule": [
    {
      "action": {"type": "Delete"},
      "condition": {"age": 30}
    }
  ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment