
Create a new bucket (Console)
- Click Create and enter a globally unique bucket name. GCS bucket names must be unique across all Google Cloud projects.
- Example name used in this demo:
gcs-demo-cloud
- Example name used in this demo:
- Click Continue, choose a location (for this demo we use
us-central1— a single-region), then Continue. - Choose a storage class. For general-purpose usage, select Standard (default). Click Continue.
Bucket-naming tips: Use lowercase letters, numbers, and dashes; avoid dots when possible. Names must be globally unique and should reflect purpose or environment (for example,
myproject-staging-2026).- “Enforce public access prevention on this bucket” may be enabled by default—this prevents anonymous public reads even if an object would otherwise be public.
- Access control model: choose Uniform (uniform bucket-level access) to simplify permission management via IAM and disable ACLs. Uniform access is recommended for most use cases.

Storage classes — quick reference
| Storage class | Use case | Typical example |
|---|---|---|
| Standard | Frequently accessed objects | Active datasets, website assets |
| Nearline | Infrequent access (≥30 days) | Backups, infrequently read archives |
| Coldline | Rare access (≥90 days) | Long-term backups |
| Archive | Very rare access (≥365 days) | Regulatory archives |
Lifecycle rules: control costs automatically
GCS lifecycle rules help automate storage class transitions or deletions of older objects (or older versions). This keeps storage costs under control and prevents accumulation of temporary files. To add a lifecycle rule in the Console:- Open your bucket and go to Lifecycle.
- Click Add a rule.
- Choose an action: change storage class or delete objects. For this demo we add a rule to delete objects older than 30 days (good for temporary files or intermediary outputs).


| Action | Typical condition | When to use |
|---|---|---|
Delete | Age = 30 days | Temporary files, staging objects |
SetStorageClass | Age = 90 days → Coldline | Cost savings for infrequently accessed data |
SetStorageClass | Age = 365 days → Archive | Long-term archival retention |
Upload an object and view object details
Upload a file (for example,index.html) via drag-and-drop or the Upload files button. After upload, click Refresh to see the object listed.

index.html object to view its details. The object details pane shows two URL types:
- Public URL — accessible by anonymous users when an object is publicly readable.
- Authenticated URL — requires valid credentials or IAM permissions to access.
Manage permissions
To modify who can read or write objects:- Open the bucket and go to Permissions.
- Use Grant access to add a user, group, or service account and assign roles such as
Storage Object Viewer,Storage Object Creator, orStorage Admin. - To make objects public (not recommended for sensitive data), you must first remove public access prevention and then bind the
allUsersmember to theStorage Object Viewerrole — or enable ACL-based control and set object ACLs accordingly.
Do not make production data publicly accessible. Only remove public access prevention or grant public access in controlled, non-sensitive demos or for intentionally public sites.
Quick CLI alternative (gsutil)
To create the same bucket using the CLI (example):lifecycle.json):
Typical GCS use cases
- Static website hosting (public frontend assets)
- Staging/landing zones for ETL and data pipelines
- Intermediate or persistent storage for data lakes
- Storing artifacts (build outputs, backups)