Zero-Egress Object Storage Providers Compared
AI workloads reveal egress as the hidden cost multiplier that locks teams into single clouds.

Object storage gets shopped like a grocery item: compare the per-GB price, pick the cheapest shelf, move on. That instinct misses how the bill actually gets built. Every invoice splits into three separate charges, storage per GB-month, egress per GB of data leaving the network, and API request fees, and the provider that wins on any one line rarely wins on the total. Egress is the line that does the damage. AWS S3 charges roughly four times its storage rate when you move data out. Azure costs close to five times, and Google Cloud's default Premium Tier is roughly six times, the highest markup of the three major clouds. A workload priced across eight providers found egress responsible for the largest share of the gap between the cheapest and most expensive options, not storage. For any workload that reads more than it writes, content delivery, backup restores, AI inference serving, egress can swallow the storage line whole. There's a second trap buried in that math: moving a large archive off a hyperscaler triggers a one-time egress charge on the way out, which acts as a financial lock-in even when there was never a contract forcing anyone to stay.
AI workloads and the structural cost of egress
AI infrastructure made a manageable line item into the dominant one. GPU capacity doesn't sit still, and teams chasing available compute move data across clouds and regions to reach it, with every transfer registering as an egress event on whichever cloud currently holds the data. Model checkpoints are the sharpest version of this problem: pulling a large checkpoint from a hyperscaler bucket every time a fresh instance spins up adds egress charges that pile up fast at scale. Inference serving makes the ratio worse by design. A stored model gets read far more often than it gets written, the inverse of the backup-and-archive pattern that hyperscaler pricing was built around decades ago. GPU hardware generations also turn over fast, so startups want the freedom to switch clouds the moment better chips ship, but egress fees tax that freedom directly, penalizing exactly the flexibility AI teams need most.
Character AI is the clearest public illustration of the response to that problem. The company uses Cloudflare R2 as the connective layer across a multi-cloud setup, storing training and production data in a zero-egress bucket so any cloud can reach it without a transfer charge attached. That decision decouples training and inference from any single cloud's GPU supply, letting the team chase better hardware across providers without egress fees compounding the cost of switching. Zero-egress storage exists as a product category because AI access patterns made the old egress math untenable, not because providers decided to get generous.
Zero-egress pricing structures across providers
"Zero egress" sounds like a single, clean promise. In practice it covers at least four different pricing structures, and the differences decide whether the claim holds at the scale a given workload actually runs at. The cleanest version is unconditional: no cap, no ratio, no fine print, egress simply isn't metered regardless of volume. A second version caps your free egress at a multiple of stored data. Backblaze B2 works this way: you get free egress up to three times the average monthly stored data, then it charges $0.01/GB past that line. A third version ties free egress to a strict ratio against storage. Wasabi only gives you free egress when your monthly transfer stays at or below total data stored, but a content-delivery or CDN-origin workload can blow past that 1:1 ratio within days.
A fourth version attaches conditions that have nothing to do with egress volume. Some providers that waive egress fees impose minimum object retention windows, 30 days or 90 days, which quietly raises the cost of any workload with high churn. And some "free" egress is free only through a specific channel: Backblaze B2's CDN egress is free when it flows through a Bandwidth Alliance partner (Cloudflare among them), not free across the network generally. None of these four structures is dishonest. They're different enough that comparing providers on the word "free" instead of the structure behind it produces the wrong answer.
Cloudflare R2: zero egress without conditions and the workloads it fits best
R2 is the only mainstream provider offering egress at zero dollars with no ratio cap, no fair-use clause, and no alliance dependency attached, whether the monthly transfer is 1 GB or 100 TB. Standard storage runs $0.015/GB-month, Infrequent Access runs $0.01/GB-month, and egress costs nothing no matter what, a structure Cloudflare lays out directly in its R2 pricing. The free tier covers 10 GB of storage, 1 million Class A operations, and 10 million Class B operations per month, so you can prototype a real workload before you have to make any billing decision. For an AI inference workload with a large stored dataset and heavy monthly egress, R2's invoice is dominated almost entirely by the storage line, since the egress line reads zero regardless of how much traffic moves. That gap only widens as egress volume grows, which is the opposite of how hyperscaler pricing behaves.
R2 also functions as part of a broader platform, with compute and access control built in alongside the bucket. It pairs natively with Cloudflare Workers, letting compute run at the edge in response to object changes, and with AI Gateway, which adds observability and caching for inference traffic. Cloudflare Access, part of its Zero Trust suite, can control which users, services, or AI agents reach a given bucket without standing up a VPN or a separate identity layer. The combination fits public asset serving, multi-cloud AI training data, model checkpoints accessed from more than one cloud, and agent sandboxing, basically any workload where an unpredictable egress bill has caused a billing surprise in the past.
R2 does have real gaps. It does not currently support versioning or S3-compatible object lock. It offers native bucket locks for WORM-style retention, but that falls short of full S3 Object Lock API compliance, so if your team needs immutable backup or regulatory compliance, look elsewhere, a point the next section covers directly. Workloads built around millions of small writes a day also need to model Class A operation costs carefully, since those charges can add up even when the egress line stays at zero. Cloudflare's own position is that charging for data movement is a tax on developer freedom rather than a legitimate product feature, and R2's pricing structure is the direct expression of that stance against the hyperscaler egress-multiplier model.
Tigris: zero egress with versioning and WORM for compliance-bound workloads
Tigris picks up where R2's compliance gap leaves off. It combines unconditional zero egress with versioning, object lock, and WORM compliance, the feature set R2 doesn't yet offer, at a storage price that reflects the added capability: $0.020/GB-month against R2's $0.015/GB-month. That premium buys you the audit trail and immutability guarantees that regulated backup, audit-log, and data-governance workloads actually need.
Tigris also offers bucket forks, instant, zero-copy clones of an entire bucket, which support parallel ML experiments, agent isolation, and dataset versioning without duplicating the underlying data or triggering an egress charge in the process. In April 2026, Tigris announced CougarLLM, a globally distributed inference server built to bring zero-egress inference to open-weight models. Tigris has also built a distribution channel no other object storage provider has matched: it now ships as a plugin for Claude Code, Cursor, and other AI coding agents, putting the storage layer directly inside the tools developers already use to write code.
The fit is specific: teams that need zero egress alongside versioning or WORM compliance, multi-cloud AI training with agent sandboxing requirements, and teams for whom R2's missing compliance features are a hard blocker. If your team has no compliance requirement, treat the $0.020 versus $0.015 gap as a real question rather than a rounding error, because at scale that five-tenths-of-a-cent difference compounds across every terabyte stored.
Backblaze B2, Wasabi, and OVHcloud: where conditional zero-egress makes sense
Three more providers offer zero or near-zero egress, each tuned to a narrow workload profile it serves well and breaks down badly outside of.
Backblaze B2 charges $6.95/TB-month for storage, among the lowest mainstream rates in the category. You get free egress up to three times the average monthly stored data, then it charges $0.01/GB past that line. Egress through Bandwidth Alliance partners, including Cloudflare, is free within that partner network, but transfers outside it are billed normally. B2 fits backup and archive workloads where your downloads stay infrequent relative to what's stored, so the free-egress ceiling never comes close to getting tested. It stops making sense for content distribution or AI inference workloads where monthly egress routinely outpaces stored volume.
Wasabi's constraint sits on the storage side rather than the egress side: a 90-day minimum retention applies to every object, so deleting something after a week still bills for the full 90-day window. On a high-churn dataset that rule alone can double the effective storage cost. Egress stays free only when monthly transfer doesn't exceed total data stored, and a CDN-origin or heavy-download workload can exceed that 1:1 ratio within days. Wasabi charges no API request fees at all, which makes it a strong fit for high-frequency small-object writes that stay inside the egress ratio, agent state logs, event streams, CI artifacts with long retention windows. It fits backups, media archives, and write-once datasets, where your objects live well past 90 days and reads stay below what's stored. It breaks down fast for short-lived CI artifacts or any dataset with high churn.
OVHcloud serves a narrower but specific case: EU-jurisdiction teams with GDPR data-residency requirements who need zero egress and can't rely on a US-jurisdiction provider to satisfy that constraint.
The gotchas that break migrations after the pricing comparison looks settled
A handful of operational details can invalidate a cost model that looked solid when you only compared storage and egress rates.
Minimum retention windows hit hardest here. Wasabi's 90-day per-object minimum is the harshest version of this rule, and OVHcloud's 30-day minimum is shorter but still applies across every tier. Both apply per object rather than per account, so if a dataset has heavy churn, it takes the full penalty on every object that gets deleted early. Teams have found this out only after tens of terabytes were already migrated.
Object size caps matter just as much. Some providers cap a single object at 5 GB rather than the 5 TB ceiling S3 set as the industry standard, which rules out video files, large ML checkpoints, or sizable backup archives. Check this number before running a single multipart upload test.
"S3 compatible" covers a wide range of actual compatibility. Basic GET and PUT operations work almost everywhere, but multipart uploads, presigned URLs, lifecycle policies, event notifications, object lock, and versioning vary a great deal between providers. Test against a real workload instead of trusting a compatibility checklist on a marketing page.
Operations costs can sneak up on a bill that otherwise looks clean. R2 prices Class A operations per million, and a workload built around millions of small writes a day, agent state, event logs, CI artifacts, can turn that line into a meaningful cost even while the egress line stays at zero.
Wasabi's ratio rule has teeth in practice. A workload storing 10 TB but reading 15 TB in a month breaches Wasabi's 1:1 egress-to-storage fair-use policy, and the consequence isn't a surprise invoice, it's bandwidth throttling or account suspension. The "no egress fees" promise simply doesn't hold for that access pattern.
Each of these traps is avoidable with the right question asked during evaluation rather than after migration: what's the retention minimum, what's the real egress-to-storage ratio for this workload, and does "S3 compatible" cover the specific features this architecture depends on.
Layering security and access governance onto zero-egress storage
Picking a zero-egress provider solves billing. It doesn't solve access governance on its own, and AI workloads raise a governance question that didn't exist in the backup-and-archive era: agents reading from object storage need scoped, auditable access to specific buckets rather than broad IAM credentials, and most object storage providers have no built-in mechanism for granting that kind of narrow permission.
Cloudflare addresses this inside the same platform that hosts R2. MCP (Model Context Protocol) servers run on Workers and expose tools and data to agents through secure, OAuth-scoped endpoints, so you don't need to self-host that infrastructure. AI Gateway adds a cost control layer on top, letting admins cap inference spend per user, per team, or per application, which matters directly when an agent loop starts repeatedly pulling large objects and running up a bill nobody budgeted for. Zero Trust access sits on pricing that scales with team size rather than enterprise contracts: free for up to 50 users, then $7 per user per month with no cap above that.
Teams on a different provider aren't locked out of this kind of governance, but they pay for it in a different currency. Any zero-egress provider can be paired with a separate identity and access management layer, but that pairing means operating and reconciling two distinct control planes instead of one, and that integration overhead is the real cost of assembling point solutions instead of working within a single platform.
Matching workload to provider: a decision framework across the common cases
Three variables decide which zero-egress provider fits a given workload: whether compliance features like versioning or object lock are required, what the realistic egress-to-storage ratio looks like in production, and whether a jurisdictional requirement rules out non-EU providers. Storage rate alone answers none of these questions.
Multi-cloud AI training, model checkpoint storage accessed from more than one cloud, and high-egress inference serving point to Cloudflare R2: unconditional zero egress at any volume, one storage class to reason about, native Workers integration, and no ratio cap waiting to surprise anyone. For the workload profile that created the zero-egress category in the first place, it's the strongest overall fit.
Workloads that need zero egress plus versioning, object lock, or WORM compliance point to Tigris, the only provider in this comparison combining unconditional zero egress with full compliance features. Bucket forks add real value for AI dataset versioning and agent isolation, and the storage premium over R2 is the direct trade-off for that added capability.
Cold backup and archive workloads with infrequent reads point to Backblaze B2: the lowest mainstream storage price in this comparison, a generous free-egress allowance that covers most restore patterns, and published durability data that few providers match for transparency. It breaks down once your monthly reads start to approach or exceed what's stored.
Long-lived, stable datasets with high write frequency and little egress point to Wasabi, where no API request fees combined with free egress make it cost-effective for stable, write-heavy, long-retention data, provided the 90-day minimum retention and 1:1 egress ratio get verified against the actual workload before committing.
EU data sovereignty requirements with a zero-egress need point to OVHcloud, which removed its egress fees in January 2026 and now serves as the primary option for teams facing hard GDPR or EU-jurisdiction constraints, with a 30-day retention minimum attached.
Teams already deeply wired into a hyperscaler's analytics stack, Lambda, SageMaker, Athena, BigQuery, have a legitimate reason to stay on AWS S3 or the equivalent hyperscaler service. For that case, ecosystem integration is worth paying the egress premium for, and the right move is to model egress as a known, budgeted cost.
Before choosing, three questions settle most of the decision: does the workload require versioning, object lock, or WORM compliance; what is the realistic egress-to-storage ratio, and does the provider's pricing model actually hold at that ratio; and is there a hard data-residency or jurisdiction requirement governing where the data can legally sit.


