Recommendation

Choose the object-store boundary separately from uploads and delivery.

AWS breadth, Cloudflare delivery economics, Supabase integration, and a cost-focused object store solve different platform and workload constraints.12

For: Application and platform teams storing user files, media, exports, backups, archives, or application objects

Main trade-off

Broader ecosystems and integrated policy can reduce assembly work, while provider coupling and request, transfer, lifecycle, region, and compatibility differences shape cost and exit.1245

Four object-storage routes

Storage APIs can look similar while lifecycle, access policy, regions, ecosystem, transfer, compatibility, and pricing differ.

  1. Object lifecycle

    Define retention, versioning, deletion, legal hold, archival, replication, restore, and lifecycle transitions.12

  2. Access and security

    Choose public versus private objects, service identity, signed access, encryption, audit, tenant isolation, and policy ownership.12

  3. Region and delivery

    Set residency, latency, CDN, transformation, download, cross-region, and disaster-recovery requirements.23

  4. Workload economics

    Model stored bytes, object count, operations, retrieval, transfer, replication, storage classes, and adjacent-service charges.1

Storage routes

Choose the provider whose full operating and cost boundary fits; S3-compatible does not mean identical to S3.

AWS breadth and controls are required

Evaluate Amazon S3.

Regions, storage classes, lifecycle, policy, compliance, and AWS integrations support broad object-storage needs.

Verify: Request, retrieval, transfer, replication, storage-class, and adjacent-service charges require workload-specific modeling.12

Cloudflare delivery economics lead

Evaluate Cloudflare R2.

Cloudflare integration and S3-compatible access can fit delivery-heavy applications with a deliberate Cloudflare boundary.

Verify: Feature, region, operation, ecosystem, and compatibility differences mean R2 cannot be treated as S3 with different pricing.123

Supabase is the intentional backend

Evaluate Supabase Storage.

Shared identity, Postgres policies, database, and storage tooling can simplify access control and platform operations.

Verify: Storage policy, quotas, delivery, data movement, and pricing become part of the wider Supabase commitment.124

A storage-first cost profile fits

Evaluate Backblaze B2.

A narrower object-storage service can fit backup, archive, media, and application objects without the full AWS platform surface.

Verify: Verify regions, API behavior, lifecycle, delivery integrations, service breadth, and download economics.125

Boundary: File Upload Workflows owns client ingestion, authorization, validation, progress, resumability, processing, and handoff. CDN and media delivery are downstream concerns.

Compatibility is only one dimension

The operational and economic boundary includes much more than basic object PUT and GET calls.

Policy model
Identity, bucket policy, row-level integration, signed access, and tenant isolation differ materially.23
Lifecycle
Versioning, storage classes, retention, restore, replication, and deletion controls shape durable operation.12
Delivery
CDN integration, transformations, transfer charging, origin access, and cache behavior affect end-to-end design.23
Compatibility
S3-compatible APIs vary in supported operations, authentication, tooling, events, and ecosystem integrations.12
Cost
Storage alone is insufficient; model requests, retrieval, transfer, replication, minimums, and adjacent services.12

Official resources

Use the primary documentation to validate product boundaries, operating behavior, limits, and current commercial terms.

Sources

Official documentation supporting the decision routes and their boundaries.

  1. 1
    Amazon S3 user guide

    Amazon Web Services · Accessed Official

  2. 2
    Cloudflare R2 documentation

    Cloudflare · Accessed Official

  3. 3
    R2 S3 compatibility

    Cloudflare · Accessed Official

  4. 4
    Supabase Storage documentation

    Supabase · Accessed Official

  5. 5
    Backblaze B2 documentation

    Backblaze · Accessed Official