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
allUsersgrants; 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.comRemember
- 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.