Bird
Raised Fist0
GCPcloud~5 mins

Creating buckets and uploading objects in GCP - Step-by-Step CLI Walkthrough

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Sometimes you need a place in the cloud to store files like photos or documents. Creating a bucket is like making a folder in the cloud. Uploading objects means putting your files into that folder so you can use or share them later.
When you want to save backups of your important files safely in the cloud.
When you need to share files with your team without emailing large attachments.
When your app needs to store user-uploaded images or documents.
When you want to archive logs or data for later analysis.
When you want to organize files by project or purpose in separate cloud folders.
Config File - bucket-config.json
bucket-config.json
{
  "name": "example-bucket-12345",
  "location": "US",
  "storageClass": "STANDARD"
}

This JSON file defines the bucket's name, where it is located geographically, and the storage class which affects cost and access speed.

name: The unique name of your bucket.

location: The region where your bucket is stored.

storageClass: The type of storage, STANDARD is good for frequent access.

Commands
This command creates a new bucket named 'example-bucket-12345' in the US region with standard storage. We run this first to have a place to store files.
Terminal
gsutil mb -l US -c STANDARD gs://example-bucket-12345/
Expected OutputExpected
Creating gs://example-bucket-12345/...
-l US - Sets the bucket location to US region
-c STANDARD - Sets the storage class to STANDARD for frequent access
This command lists all buckets in your project to confirm the new bucket was created successfully.
Terminal
gsutil ls
Expected OutputExpected
gs://example-bucket-12345/
This command uploads the file 'sample-file.txt' from your computer to the bucket you created. This puts your file safely in the cloud.
Terminal
gsutil cp sample-file.txt gs://example-bucket-12345/
Expected OutputExpected
Copying file://sample-file.txt [Content-Type=text/plain]... / [1 files][ 12.0 B/ 12.0 B] 100% Done Operation completed over 1 objects/12.0 B.
This command lists the files inside your bucket to verify that your upload worked and the file is there.
Terminal
gsutil ls gs://example-bucket-12345/
Expected OutputExpected
gs://example-bucket-12345/sample-file.txt
Key Concept

If you remember nothing else from this pattern, remember: create a bucket first, then upload files into it to store them safely in the cloud.

Common Mistakes
Trying to upload a file before creating the bucket.
The upload fails because the destination bucket does not exist yet.
Always create the bucket first using 'gsutil mb' before uploading files.
Using a bucket name that is already taken by someone else.
Bucket names must be unique globally, so the command will fail if the name is used.
Choose a unique bucket name, often by adding numbers or your project name.
Not specifying the bucket location and storage class when creating the bucket.
This can lead to default settings that might not fit your needs and could cost more or be slower.
Use flags '-l' for location and '-c' for storage class to set these explicitly.
Summary
Use 'gsutil mb' to create a new bucket with a unique name, location, and storage class.
Use 'gsutil ls' to check your buckets and confirm creation.
Use 'gsutil cp' to upload files into your bucket.
Use 'gsutil ls gs://bucket-name/' to list files inside your bucket and verify uploads.

Practice

(1/5)
1. What is the main purpose of creating a bucket in Google Cloud Storage?
easy
A. To manage user permissions
B. To organize and store files in the cloud
C. To create databases
D. To run virtual machines

Solution

  1. Step 1: Understand what a bucket is

    A bucket is a container in cloud storage used to hold files or objects.
  2. Step 2: Identify the purpose of buckets

    Buckets help organize and store files safely in the cloud for easy access and management.
  3. Final Answer:

    To organize and store files in the cloud -> Option B
  4. Quick Check:

    Bucket = Storage container [OK]
Hint: Buckets hold files in cloud storage, not run machines [OK]
Common Mistakes:
  • Confusing buckets with virtual machines
  • Thinking buckets create databases
  • Mixing buckets with user permission tools
2. Which command correctly creates a new bucket named my-bucket in Google Cloud Storage using the gcloud tool?
easy
A. gcloud storage buckets create my-bucket
B. gcloud create bucket my-bucket
C. gsutil mb gs://my-bucket
D. gcloud storage create-bucket my-bucket

Solution

  1. Step 1: Recall the gcloud syntax for bucket creation

    The correct syntax is gcloud storage buckets create [BUCKET_NAME].
  2. Step 2: Match the command with the correct syntax

    gcloud storage buckets create my-bucket matches the correct syntax exactly.
  3. Final Answer:

    gcloud storage buckets create my-bucket -> Option A
  4. Quick Check:

    gcloud storage buckets create = create bucket [OK]
Hint: Use 'gcloud storage buckets create' to make buckets [OK]
Common Mistakes:
  • Using 'gcloud create bucket' which is invalid syntax
  • Confusing gsutil command with gcloud syntax
  • Adding hyphens incorrectly in command
3. What will be the result of running this command?
gsutil cp file.txt gs://example-bucket/
medium
A. Downloads file.txt from example-bucket
B. Deletes file.txt from local storage
C. Creates a new bucket named example-bucket
D. Uploads file.txt to the example-bucket in Google Cloud Storage

Solution

  1. Step 1: Understand the gsutil cp command

    The gsutil cp command copies files between local and cloud storage.
  2. Step 2: Analyze the command arguments

    It copies file.txt from local to the bucket gs://example-bucket/, uploading the file.
  3. Final Answer:

    Uploads file.txt to the example-bucket in Google Cloud Storage -> Option D
  4. Quick Check:

    gsutil cp local-to-bucket = upload [OK]
Hint: gsutil cp localfile gs://bucket = upload file [OK]
Common Mistakes:
  • Thinking cp deletes local files
  • Assuming it creates buckets automatically
  • Confusing upload with download direction
4. You tried to upload a file using gsutil cp myfile.txt gs://my-bucket/ but got an error saying the bucket does not exist. What is the most likely fix?
medium
A. Run the command with sudo
B. Rename the file to match the bucket name
C. Create the bucket first using gsutil mb gs://my-bucket
D. Delete the file and try again

Solution

  1. Step 1: Understand the error cause

    The error means the bucket my-bucket does not exist in cloud storage.
  2. Step 2: Fix by creating the bucket

    You must create the bucket first using gsutil mb gs://my-bucket before uploading files.
  3. Final Answer:

    Create the bucket first using gsutil mb gs://my-bucket -> Option C
  4. Quick Check:

    Bucket missing? Create it first [OK]
Hint: Create bucket before upload to avoid errors [OK]
Common Mistakes:
  • Trying to upload without bucket creation
  • Changing file name instead of bucket
  • Using sudo unnecessarily
5. You want to create a bucket named data-archive in the us-central1 region with versioning enabled to keep old versions of files. Which sequence of commands achieves this?
hard
A. gsutil mb -l us-central1 gs://data-archive && gsutil versioning set on gs://data-archive
B. gcloud storage buckets create data-archive --location=us-central1 && gcloud storage buckets update data-archive --versioning-enabled
C. gcloud storage buckets create data-archive --region=us-central1 && gcloud storage buckets enable-versioning data-archive
D. gsutil create bucket data-archive us-central1 && gsutil enable versioning gs://data-archive

Solution

  1. Step 1: Create bucket with location using gsutil

    The command gsutil mb -l us-central1 gs://data-archive creates the bucket in the correct region.
  2. Step 2: Enable versioning on the bucket

    The command gsutil versioning set on gs://data-archive turns on versioning to keep old file versions.
  3. Final Answer:

    gsutil mb -l us-central1 gs://data-archive && gsutil versioning set on gs://data-archive -> Option A
  4. Quick Check:

    Create bucket + enable versioning with gsutil [OK]
Hint: Use gsutil mb and gsutil versioning set on for versioned buckets [OK]
Common Mistakes:
  • Using wrong flags like --region instead of -l
  • Trying to enable versioning with wrong commands
  • Mixing gcloud and gsutil commands incorrectly