Object storage is not a filesystem
It stores immutable-ish blobs behind keys and HTTP APIs. Design for buckets, object keys, metadata, signed URLs, and eventual consistency.
Object storage is where modern apps keep uploads, generated media, static assets, backups, exports, and large files. The free-tier decision is usually about egress, request operations, access control, lifecycle rules, and CDN integration.
Use Cloudflare R2 when public downloads and bandwidth predictability matter.
Use Supabase Storage when files belong to app users and Postgres permissions.
Put public assets behind CDN and keep private files behind signed URLs.
It stores immutable-ish blobs behind keys and HTTP APIs. Design for buckets, object keys, metadata, signed URLs, and eventual consistency.
Many storage plans are cheap until users download files. Free tiers with zero or bundled egress can change the whole architecture.
Public images can sit behind CDN. Private uploads need auth checks, signed URLs, lifecycle cleanup, and permission metadata.
Generated media, logs, backups, thumbnails, and temp uploads should expire, archive, or move tiers automatically.
Good for public assets, generated media, backups, and Worker-based apps that want S3-style storage without bandwidth surprises.
Good when files belong to Postgres users, teams, rows, and RLS policies.
Good for durable backup and archive workloads, especially when paired with Cloudflare caching.
Good when domestic network performance, real-name compliance, and image processing matter.
Use this table for storage, bandwidth, request, API, and operational constraints. Re-check provider pricing before production traffic.
| PROVIDER | FREE STORAGE | MONTHLY BANDWIDTH | SPECS / COMPUTE | CONNECTION LIMITS | KEY CONSTRAINTS | ACTION |
|---|---|---|---|---|---|---|
Cloudflare R2ZERO-EGRESS S3 ALTERNATIVE | 10 GB Storage | 10M Class B (Download) + 1M Class A (Upload) Ops/mo. Absolute $0.00 Egress Fees | 100% elimination of network egress bandwidth risks; natively accessible via Cloudflare Workers routing mesh | High-throughput horizontally scaled global edge buckets | Minor S3 API gaps; lack of complex bucket policies or object locking causes old native legacy enterprise code to throw exceptions | Go to Site ↗ |
Qiniu KodoCHINA 10GB OBJECT STORAGE | 10 GB Fixed | 10 GB standard HTTP download traffic per month | Rich domestic edge acceleration nodes; provides built-in media processing pipelines | Pre-allocated multi-region tenant bucket endpoints | HTTPS Egress Blackhole: Free traffic strictly covers HTTP only; modern production HTTPS calls trigger immediate cash drainage | Go to Site ↗ |
Backblaze B2BANDWIDTH ALLIANCE PARTNER | 10 GB Storage | 30 GB standard egress; completely unmetered $0.00 traffic if routed via Cloudflare CDN caching proxy | High-reliability secondary data vault infrastructure; rigorous enterprise S3 API implementation parity | Standard secure persistent socket connections | Puny operational quotas; low default daily API operation caps mean heavy frontend directly querying assets breaks free tier | Go to Site ↗ |
Supabase StorageAUTH-INTEGRATED SANDBOX | 1 GB Media Vault | 5 GB free asset download egress bundled monthly | Out-of-the-box row-level security (RLS) policies linking file access directly to database authentication schemas | Shared pool mapped to your primary PostgreSQL project architecture | 7-Day absolute project inactivity policy; zero API pings for a week automatically pauses instance and drops asset serving | Go to Site ↗ |
Cloud Storage for FirebaseMOBILE-FIRST OBJECT STORAGE | No-Cost Quotas | Client SDK uploads/downloads with Firebase and Google Cloud integration | Resumable uploads, Firebase Auth integration, declarative Security Rules, and server-side access via Google Cloud Storage APIs | Great for app teams that need secure user-generated file storage and media delivery | Free to get started, then usage-based pricing applies once you exceed no-cost quotas | Go to Site ↗ |
Alibaba Cloud OSSCOMPREHENSIVE BACKBONE | Timed Free Quotas | Standard Aliyun internet backbone public egress allocations | Unrivaled domestic speeds; flawless data pipeline mesh with DashScope generation tools and internal ECS routing | Massive scale parallel thread endpoint pipelines | No permanent free tier; post-expiration unannounced asset retention automatically triggers heavy storage and egress bills | Go to Site ↗ |
Tencent Cloud COSIMAGE-OPTIMIZED REPOSITORY | 180-Day 50GB Trial | Shared Cloud CDN edge public download bandwidth allocation | Advanced Cloud Image (CI) processing extensions supporting zero-code WebP/AVIF conversions on the fly | Highly scalable resilient enterprise bucket architectures | Zero persistent egress protection; requires navigating complex CAM authorization matrices and real-name checks | Go to Site ↗ |
TigrisFLY.IO DYNAMIC STORAGE | 5 GB Standard | 10k Class A + 100k Class B Requests. Strictly $0.00 Network Egress Fees | Dynamic Data Placement engine automatically duplicates and moves objects to edge regions nearest to current active queries | Stateless connectionless horizontal global clusters | Small storage headroom limits (5GB ceiling); heavily integrated into and optimized for the Fly.io app runtime environment | Go to Site ↗ |
Backups, user uploads, public assets, generated media, and logs have different request, retention, and bandwidth profiles.
For images, downloads, docs, and static assets, CDN caching reduces latency, origin operations, and egress risk.
Avoid exposing buckets directly. Generate short-lived URLs after checking user permissions in your backend.
Store original uploads separately from thumbnails, compressed variants, AI outputs, and temporary processing files.
A small viral file can create more bandwidth cost than months of stored data. Check public-download paths carefully.
Client uploads are useful, but unaudited permissions can expose private files or allow abusive uploads.
Image processing, AI generation, import jobs, and failed uploads create abandoned objects quickly.
S3-compatible APIs may still differ on policies, locks, events, multipart edge cases, and region behavior.
Deploy pages on static hosting, keep heavy assets in object storage, and deliver them through CDN cache.
Use auth for ownership, SQL for file metadata, object storage for bytes, and signed URLs for private access.
Run generation as background jobs, store final images/audio/video, then publish approved assets through CDN.
It stores files, images, videos, backups, user uploads, generated media, logs, exports, and static assets behind HTTP APIs or S3-compatible APIs.
No. Store bytes in object storage and metadata, permissions, relationships, search fields, and ownership in SQL or another database.
Storage capacity may be cheap or free, but downloads can become expensive. Public assets should usually be cached by CDN and protected with quotas.
No. Use backend-issued signed upload or download URLs, or provider SDK flows that enforce scoped temporary credentials.