Cloud Storage buckets and objects

Google Cloud · Essentials · 11 min

Cloud Storage holds everything from user uploads and backups to data lake files and static websites.

Cloud Storage is object storage: you put objects (any bytes plus metadata) into buckets. Bucket names are globally unique. A bucket has a location (region, dual-region or multi-region) chosen at creation and never changed.

There are no real directories: reports/2026/q3.csv is one object name, and tools show the /-separated prefixes as folders. (Buckets with the optional hierarchical namespace do have real folders, useful for analytics workloads.)

Use the gcloud storage commands; they replace the older gsutil and are faster for large transfers.

Access control:

  • Enable uniform bucket-level access so only IAM decides access (no per-object ACLs). It is the recommended setting.
  • Public access prevention blocks allUsers grants; many organizations enforce it.
  • To share one object temporarily, create a signed URL instead of making it public.

Objects are immutable: an upload replaces the whole object. Strong consistency applies: after a successful write, every read and list sees it. Deleted objects are kept for a soft delete period (7 days by default) and can be restored, which you pay for as storage.

Upload limits are generous (objects up to 5 TiB), and large files are uploaded in parallel composite or resumable chunks automatically.

Example

gcloud storage buckets create gs://shop-dev-4821-uploads \
  --location=europe-west1 --uniform-bucket-level-access --public-access-prevention

gcloud storage cp ./report.csv gs://shop-dev-4821-uploads/reports/2026/
gcloud storage ls gs://shop-dev-4821-uploads/reports/
# gs://shop-dev-4821-uploads/reports/2026/

gcloud storage cat gs://shop-dev-4821-uploads/reports/2026/report.csv | head -2
gcloud storage rsync ./site gs://shop-dev-4821-uploads/site --recursive

# Time-limited link without making anything public (needs a signing identity)
gcloud storage sign-url gs://shop-dev-4821-uploads/reports/2026/report.csv --duration=1h \
  --impersonate-service-account=signer@shop-dev-4821.iam.gserviceaccount.com

Remember

  • Buckets have a fixed location and a globally unique name
  • Folders are just name prefixes
  • Use uniform bucket-level access and IAM; share with signed URLs
  • Prefer gcloud storage over gsutil

Watch out for

  • Granting allUsers objectViewer on a bucket to share one file.

Check yourself

  1. How do you rename a 'folder' with 10,000 objects in a standard bucket?

Sign in to answer, see the explanations, and get this lesson back as a quick review later.

Official docs: cloud.google.com/storage/docs/creating-buckets