Skip to content

What S3-Compatible Really Means (and Why It Matters When You Switch)

What S3-compatible means and why it matters when switching providers

What "S3-Compatible" Actually Means

Section titled "What "S3-Compatible" Actually Means"

S3-compatible means a storage service speaks the same API language as Amazon S3. Tools, SDKs, and apps built for S3 can usually work with it for common object operations by changing endpoint and credentials. It does not mean the service is run by Amazon, and it does not promise every feature is identical.

The S3 API became a de facto standard. Once enough tools spoke it, new providers had a choice: invent their own interface and ask everyone to re-tool, or speak S3 and work on day one with the entire existing ecosystem. Most chose S3.

The API Is the Standard, Not the Company

Section titled "The API Is the Standard, Not the Company"

Think of it like a power socket. The plug shape is the standard, and a device built for that plug can draw power without caring which utility generated the electricity. S3 compatibility is the plug shape for object storage. Backblaze B2, Wasabi, Cloudflare R2, and DigitalOcean Spaces all expose an S3-compatible endpoint, so tools such as aws s3, rclone, and desktop transfer apps can point at them by changing the endpoint and the keys.

The real value of S3 compatibility is that it makes providers more swappable. If your app reads and writes through the common S3 operations, moving from one S3-compatible store to another is mostly a matter of changing the endpoint and the credentials, not rewriting code. That keeps you from being locked in by your tooling, and it means a provider's pricing model or a new egress policy does not trap your data with them.

What Compatibility Does Not Guarantee

Section titled "What Compatibility Does Not Guarantee"

Compatible is not identical. A few things still vary between S3-compatible providers, so check them before you commit:

  • Feature coverage. Lifecycle rules, versioning, object lock, and multipart limits differ. Most common operations are covered; the long tail is not always.
  • Performance and consistency. Throughput, latency, and edge-case consistency behavior are the provider's own.
  • Regions and durability. Where your data physically sits, and how many copies are kept, is a provider decision.
  • The pricing model. Egress and minimum storage duration are where S3-compatible providers differ most, and those terms decide the real cost of an archive far more than the headline storage rate.

Azure Blob Storage uses its own API rather than the S3 API, so it is not S3-compatible in the same drop-in way. The concepts line up (an S3 bucket maps to a container, an object to a blob), but a tool pointed at S3 will not talk to Azure Blob without a translation layer. That is worth knowing if your stack assumes S3 everywhere.

When you do need S3-compatible applications to run against Azure, an S3 gateway sits in front of Azure Blob and converts S3 API calls to Azure Blob calls on the fly:

  • Flexify.IO runs an S3 gateway in front of Azure Blob Storage[source].
  • s3proxy is an open-source proxy that presents an S3 API backed by Azure Blob and other stores[source].
  • VersityGW is an open-source S3 gateway with pluggable backends[source].
  • MinIO is S3-compatible storage that has been used to put an S3 API in front of other backends[source].

For .NET projects, FluentStorage takes a different route. Rather than a gateway, it is a polymorphic cloud storage abstraction layer, so one codebase targets S3, Azure Blob, and other stores without per-provider code[source].

Moving Between S3-Compatible Stores

Section titled "Moving Between S3-Compatible Stores"

Because the core API is shared, moving data between S3-compatible providers is usually straightforward. Blober connects to S3, Backblaze B2, Wasabi, Cloudflare R2, and DigitalOcean Spaces, and its generic S3 connector points at other S3-compatible endpoints by URL when they support the common operations Blober uses. It also bridges to non-S3 services like Azure Blob, Dropbox, and Google Drive. You point it at a source and a destination and it copies between them directly, without staging a full copy on your disk.

There are dozens of well-known S3-compatible services, plus self-hosted servers and enterprise systems you can run yourself. For a practical roster with endpoints and setup, see The Complete List of S3-Compatible Storage Providers.

Is Backblaze B2 S3-compatible? Yes. B2 exposes an S3-compatible API, so S3 tools and SDKs work against it by changing the endpoint and keys.

Is Azure Blob Storage S3-compatible? Not natively. Azure Blob uses its own API. The concepts map across (container for bucket, blob for object), but S3 tools need a translation layer to talk to it.

Does S3-compatible mean exactly the same as AWS S3? No. It means the same API language. Features like lifecycle rules and versioning, plus performance, regions, and the pricing model, vary by provider.

Can I switch S3-compatible providers without changing my app? Usually yes, if your app uses the S3 API. You change the endpoint and credentials. Check that the specific features you rely on are supported by the new provider first.

Switch object-storage providers without the re-tooling headache. Blober moves data between S3, B2, Wasabi, R2, Spaces, and more, directly and without filling your local disk.

Download Blober at blober.io