Object Storage
Unlimited, durable, HTTP-accessible data
Object storage (S3, Blob Storage, GCS) stores files as objects in flat buckets with rich metadata and HTTP access. It's the backbone of data lakes, static hosting and backups.
What you will learn
- Explain how objects, keys and buckets differ from a filesystem
- Compare S3, Azure Blob and GCS semantics
- Back up and serve data with object storage
Object storage addresses data by a key inside a bucket over HTTP, scales to exabytes, and replicates copies across availability zones/regions for 11-9s durability. No directories, no in-place edits — PUT/GET/version.
What is this?
S3 = Simple Storage Service (objects + keys, buckets as namespace, optional versioning, lifecycle, replication); Azure Blob Storage = containers/block blobs with tiers (hot/cool/cold/archive); GCS = buckets with classes (standard, nearline, coldline, archive). Objects hold data + metadata + tags; access is via HTTP(S), SDKs, or the console. Multi-part upload handles big objects; the object store is the universal data lake store.
Why do you need it?
- Durability and scale with zero server management.
- Pay per GB stored and per request — no idle capacity.
- Single HTTP interface serves web, ML, backup and analytics alike.
- Native features (versioning, lifecycle, replication, events) replace DIY solutions.
Mental model
A warehouse where every crate has a barcode and shelf label
Object storage
You can't open the crate in place (no in-place edits) — you check it out (GET), change it, and check in a new version (PUT). The warehouse (bucket) and barcode (key) make any crate findable from anywhere with HTTP.
How it works
- Client authenticates (IAM/keys/signed URLs) and addresses a bucket key over HTTPS.
- Objects have content, content-type, size, metadata and version id if enabled.
- Durability: erasure coding/replication spreads copies across multiple AZs or zones.
- HTTP range reads and multipart upload handle huge objects efficiently.
- Lifecycle rules transition objects to cheaper tiers and expire/delete at set ages.
Object lifecycle.
Examples
Object storage basics
# AWS S3aws s3 cp report.csv s3://my-bucket/ingest/2026-09/report.csvaws s3 ls s3://my-bucket --recursive# Azure Blobaz storage blob upload --container-name logs --name app.log --file app.logaz storage blob list --container-name logs# GCSgsutil cp report.csv gs://my-bucket/ingest/gsutil ls gs://my-bucket/ingest/All three speak HTTP/S3-style semantics: copy in, list, copy out — no mounts, no servers.
In production
- A data platform lands Kafka topics into an S3 bucket organized as s3://lake/<env>/<topic>/<date>/
- Blob Storage serves immutable audit logs with legal-hold and lifecycle to archive.
- GCS buckets front a static site served via a CDN with signed URLs for downloads.
Best practices
- Design a key layout (partition + date) that maps to queries and lifecycle.
- Enable versioning on buckets that hold recoverable data.
- Use lifecycle rules for tiering and expiry instead of manual garbage collection.
- Enable bucket-level encryption and deny public writes by default.
Common mistakes
- Treating buckets like folders and doing thousands of small PUTs into one prefix.
- Storing credentials/secrets in object files that are world-readable.
- Forgetting lifecycle = costs grow as data ages into the hot tier.
- Using a filesystem mental model: no rename/append; updates are new versions.
Common issues
Access denied reading a 'public' objectBucket policy blocks or ACL/block-public-access is on
Verify IAM + bucket policy + block-public-access setting; use presigned URLs for external reads.
Unexpected huge bill from a 'small' bucketLifecycle not set; old versions/tiers piling up
Add lifecycle rules, prune old versions, and check the storage-class breakdown of objects.
Debugging tips
- 403s: check bucket policy, object ACL, IAM role and signed URL expiry in that order.
- Slow first GET: cold reads/tier transition; verify the object's storage class.
- Version surprises: listing shows multiple versions when versioning on — filter max-keys.
- Multipart uploads that never complete leave visible parts; abort them (list multipart).
Interview checkpoint
Hands-on lab
- Create a bucket/container and upload objects with CLI
- Enable versioning and observe object versions
- Generate presigned URLs for time-limited access
Land, Version and Ingest Files into Object Storage
25 min · beginner
Quick quiz
What gives object storage its durability story?