# What Are the Best S3-Compatible Object Storage Alternatives?

Several services implement the S3 API, so you can switch between them by changing the endpoint. The main differences are pricing, egress fees, global distribution, and platform-specific features. Tigris, Cloudflare R2, and Wasabi offer zero or near-zero egress fees. Only Tigris provides automatic global distribution through a single endpoint.

## Frequently Asked Questions[​](#frequently-asked-questions "Direct link to Frequently Asked Questions")

**What does S3-compatible mean?** The service implements the AWS S3 API, so existing tools, SDKs, and code work with it by changing the endpoint URL and credentials.

**Can I switch between S3-compatible providers?** Yes. Change the endpoint and credentials in your SDK configuration. Most S3 operations work identically across providers. Some providers support a subset of the full S3 API.

**Which provider has the lowest cost?** It depends on the workload. For storage-heavy workloads with low egress, Backblaze B2 is cheapest. For workloads with significant egress, Tigris and R2 are cheapest because they charge zero egress fees.

**Which provider supports global distribution?** Only Tigris provides automatic global distribution through a single endpoint. Other providers store data in a single region.

## Quick Pricing Reference (per TB/month)[​](#quick-pricing-reference-per-tbmonth "Direct link to Quick Pricing Reference (per TB/month)")

| Provider          | Storage/TB/mo | Egress/GB  | Global Distribution | Zero Egress |
| ----------------- | ------------- | ---------- | ------------------- | ----------- |
| **Tigris**        | $20           | $0         | Automatic           | Yes         |
| **Cloudflare R2** | $15           | $0         | No (single region)  | Yes         |
| **Wasabi**        | $6.99         | $0\*       | No                  | Yes\*       |
| **Backblaze B2**  | $6            | $0.01      | No                  | No          |
| **AWS S3**        | $23           | $0.09      | Manual replication  | No          |
| **MinIO**         | Infra cost    | Infra cost | Self-managed        | N/A         |

\*Wasabi's free egress requires egress to be less than or equal to monthly storage volume. Exceeding that ratio may incur fees.

## How Do S3-Compatible Providers Compare?[​](#how-do-s3-compatible-providers-compare "Direct link to How Do S3-Compatible Providers Compare?")

| Feature                 | Tigris        | AWS S3             | Cloudflare R2   | Backblaze B2    | Wasabi          | MinIO              |
| ----------------------- | ------------- | ------------------ | --------------- | --------------- | --------------- | ------------------ |
| S3 API support          | Over 90%      | Full               | Partial         | Partial         | Full            | Full               |
| Egress fees             | None          | $0.09/GB           | None            | $0.01/GB        | None\*          | Self-hosted        |
| Global distribution     | Automatic     | Manual replication | No              | No              | No              | Self-managed       |
| Endpoint                | Single global | Region-specific    | Single          | Region-specific | Region-specific | Self-hosted        |
| Bucket forks            | Yes           | No                 | No              | No              | No              | No                 |
| Shadow bucket migration | Yes           | N/A                | No              | No              | No              | No                 |
| Edge compute            | No            | Lambda\@Edge       | Workers         | No              | No              | No                 |
| Multi-cloud             | Yes           | AWS only           | Cloudflare only | B2 only         | Wasabi only     | Any infrastructure |
| Managed service         | Yes           | Yes                | Yes             | Yes             | Yes             | No (self-hosted)   |
| Free tier               | 5 GB          | 5 GB (12 months)   | 10 GB           | 10 GB           | None            | N/A                |

## When Should I Choose Each Provider?[​](#when-should-i-choose-each-provider "Direct link to When Should I Choose Each Provider?")

### Tigris[​](#tigris "Direct link to Tigris")

**Choose Tigris when:**

* The workload needs global distribution without manual replication.
* You want zero egress fees and multi-cloud flexibility.
* You need bucket forks for experiments, agent isolation, or dataset versioning.
* You want zero-downtime migration from another S3 provider.
* The workload is AI/ML with data accessed from multiple clouds or regions.

### AWS S3[​](#aws-s3 "Direct link to AWS S3")

**Choose AWS S3 when:**

* The application is tightly coupled to AWS services (Lambda, SQS, SNS, Athena).
* You need the full S3 API including S3 Select, Glacier, and Object Lambda.
* You need deep AWS IAM integration with cross-service policies.
* Compliance requires data residency on AWS infrastructure.

### Cloudflare R2[​](#cloudflare-r2 "Direct link to Cloudflare R2")

**Choose R2 when:**

* The application is built on Cloudflare Workers and needs native bindings.
* All access happens through Cloudflare's network.
* You need Cloudflare's CDN and WAF tightly integrated with storage.

### Backblaze B2[​](#backblaze-b2 "Direct link to Backblaze B2")

**Choose B2 when:**

* The workload is primarily cold storage or backups with infrequent access.
* Cost per GB stored is the primary concern and egress is minimal.
* The application uses Backblaze's Cloudflare bandwidth alliance for free egress through Cloudflare.

### MinIO[​](#minio "Direct link to MinIO")

**Choose MinIO when:**

* You need to run object storage on your own infrastructure.
* Compliance or security requirements mandate self-hosted storage.
* You need the full S3 API and control over the storage layer.

## How Do Costs Compare?[​](#how-do-costs-compare "Direct link to How Do Costs Compare?")

Example: 1 TB stored, 5 TB egress/month, 1M Class A ops, 10M Class B ops.

| Provider   | Storage    | Egress     | Operations | Total/month |
| ---------- | ---------- | ---------- | ---------- | ----------- |
| **Tigris** | $20        | $0         | $10        | **$30**     |
| **AWS S3** | $23        | $450       | $8         | **$481**    |
| **R2**     | $15        | $0         | $8         | **$23**     |
| **Wasabi** | $7         | $0         | $0         | **$7**      |
| **B2**     | $6         | $50        | $4         | **$60**     |
| **MinIO**  | Infra cost | Infra cost | Infra cost | Varies      |

For storage-heavy, low-egress workloads, Wasabi and B2 are cheapest. For egress-heavy workloads, Tigris and R2 save significantly over AWS S3. Tigris costs $7/month more than R2 but includes automatic global distribution and bucket forks. AWS S3 is the most expensive due to egress fees.

## How Do I Switch to Tigris from Another Provider?[​](#how-do-i-switch-to-tigris-from-another-provider "Direct link to How Do I Switch to Tigris from Another Provider?")

For any S3-compatible provider, change the endpoint and credentials:

```
const client = new S3Client({

  region: "auto",

  // Change endpoint to Tigris

  endpoint: "https://t3.storage.dev",

  credentials: {

    accessKeyId: process.env.AWS_ACCESS_KEY_ID,

    secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,

  },

});
```

For zero-downtime migration, use Tigris shadow buckets to lazily migrate data from the source provider. See [Migrate from Any S3 Provider](/docs/ai-agents/migrate-from-any-s3-provider/.md).

## Learn More[​](#learn-more "Direct link to Learn More")

* [Tigris Object Storage for AI Coding Agents](/docs/ai-agents/.md)
* [Tigris vs AWS S3](/docs/ai-agents/tigris-vs-s3/.md)
* [Tigris vs Cloudflare R2](/docs/ai-agents/tigris-vs-cloudflare-r2/.md)
* [Replace AWS S3 with Tigris](/docs/ai-agents/replace-s3-with-tigris/.md)
* [Migrate from Any S3 Provider](/docs/ai-agents/migrate-from-any-s3-provider/.md)
* [Choosing the Right Storage](/docs/ai-agents/choosing-the-right-storage/.md)
