
The S3 API from Amazon Web Services is the de-facto standard for object storage. SDKs, CLI tools, and applications rely heavily on this interface. This remains true even if you don't use AWS directly. At the same time, there are now a whole range of S3-compatible object storage solutions that work without AWS dependency. We'll break down the available options, how they differ, and when each setup actually makes sense in production.
Amazon S3 (Simple Storage Service) provides an HTTP REST API that has become an industry standard. Tools like aws cli, rclone, s3cmd, and most applications with object storage integration expect exactly this interface.
S3 compatibility means: A storage system implements the same API and works as a drop-in replacement for AWS S3. Existing tools, clients, and workflows can continue to be used without disruption. You only need to update the endpoint URL and credentials.
This makes switching between local development environments, on-premise clusters, and cloud providers simple, because the same mechanisms apply everywhere.
Self-hosted solutions are particularly suitable when compliance requirements or cost control play a role. These are the projects worth taking a closer look at right now:
MinIO is the most well-known S3-compatible self-hosted object storage. Written in Go, it is performant and relatively easy to operate.
MinIO has, however, changed its licensing strategy. The Community Edition is under the AGPL-3.0 license, which raises legal questions for commercial use cases. In addition, MinIO has shifted to a source-only distribution. Pre-compiled binaries are no longer provided for the open-source version. Productive use therefore requires either self-compiling or a commercial license.
For existing users, little changes in the short term. However, those evaluating newly should know the alternatives.
Strengths:
Ceph is a distributed storage system that combines object, block, and file storage in one system. The S3-compatible interface is provided by the RADOS Gateway (RadosGW).
Ceph is suitable for very large amounts of data, high fault tolerance, and multi-protocol environments. Operation, however, requires solid knowledge and appropriate hardware resources. For smaller teams or simpler setups, Ceph is often oversized.
Strengths:
Garage is a lightweight, distributed object storage with an S3-compatible API, written in Rust. Garage was developed for scenarios where solutions like Ceph are too complex or resource-hungry.
Garage is optimized for geographically distributed setups and is well suited for edge deployments or small, decentralized infrastructures. The license is AGPL-3.0, the operation is significantly simpler than with Ceph.
Strengths:
SeaweedFS is a distributed object storage with an S3-compatible interface. Originally built for the efficient storage of large amounts of small files, SeaweedFS is now a fully-fledged S3-compatible solution.
Its strength lies in high read and write speeds, particularly when handling many small objects. This is an area where Ceph traditionally shows weaknesses.
Strengths:
RustFS is a newer open-source project that positions itself as an alternative to MinIO written in Rust. Rust brings memory safety without a garbage collector, which translates into low resource consumption and less attack surface for memory errors.
RustFS advertises 100% S3 API compatibility, Kubernetes support, and enterprise features such as WORM compliance, active replication, and cross-cloud redundancy. The solution is released under the Apache 2.0 license. This bypasses the typical licensing concerns that exist with MinIO (AGPL-3.0) and Garage (AGPL-3.0) in commercial environments.
Strengths:
Limitations:
For productive use today, RustFS is still too early. As a MinIO alternative with an Apache license, however, it is worth keeping an eye on the project.
Rook is a Kubernetes operator that integrates Ceph as a storage backend into the cluster. Deployment, scaling, and recovery run via Kubernetes-native mechanisms. Deploy Rook on Kubernetes
Rook significantly reduces the complexity of Ceph and makes operations more accessible for Kubernetes-experienced teams. The result: an S3-compatible object storage that runs entirely in the cluster, without external infrastructure dependencies.
If you don't want to operate your own object storage, you can fall back on managed S3-compatible cloud services.
Cloudflare R2 differs from AWS S3 primarily in that no egress costs apply. This is relevant for applications with high data output, such as media delivery or publicly accessible files.
Backblaze B2 is an affordable S3-compatible object storage with a transparent pricing model. B2 is often used for backups and natively supported by rclone and many backup tools.
Hetzner Object Storage runs in German and Finnish data centers and is therefore GDPR-compliant without additional effort. A practical and affordable option for European companies with data sovereignty requirements.
| Solution | Type | License | Operational Effort | GDPR | Best Use Case |
|---|---|---|---|---|---|
| MinIO | Self-hosted | AGPL-3.0 / Commercial | Medium | ✅ (On-Prem) | Allrounder, Dev to Enterprise |
| Ceph / RadosGW | Self-hosted | LGPL-2.1 / LGPL-3.0 | High | ✅ (On-Prem) | Enterprise, large data volumes |
| Garage | Self-hosted | AGPL-3.0 | Low | ✅ (On-Prem) | Edge, small distributed setups |
| SeaweedFS | Self-hosted | Apache 2.0 | Medium | ✅ (On-Prem) | Many small objects, high I/O |
| RustFS | Self-hosted | Apache 2.0 | Unclear (Alpha) | ✅ (On-Prem) | MinIO alternative (still Alpha!) |
| Rook + Ceph | Kubernetes-native | Apache 2.0 | Medium | ✅ (On-Prem) | Kubernetes cluster with storage need |
| Cloudflare R2 | Managed Cloud | Proprietary | None | ⚠️ US Provider | Public Assets, no egress |
| Backblaze B2 | Managed Cloud | Proprietary | None | ⚠️ US Provider | Backup, Archiving |
| Hetzner Object Storage | Managed Cloud | Proprietary | None | ✅ EU (DE/FI) | GDPR-compliant cloud projects |
Self-hosted:
Managed:
For European companies with data protection requirements, an EU-based managed provider or a self-hosted solution on their own infrastructure is usually an option.
If you're evaluating S3-compatible storage today, the licensing changes at MinIO are hard to ignore. The good news is that there are solid alternatives. Ceph serves the heavy enterprise workloads, SeaweedFS excels at handling high I/O for small files, and lightweight tools like Garage fill edge-deployment niches. RustFS is definitely the project to keep on your radar for the future.
For Kubernetes environments, Rook + Ceph offers a natively integrated solution. If you want to skip the operational overhead entirely, European managed providers like Hetzner Object Storage are an easy path to check the GDPR compliance box without the headache.
On lowcloud, Kubernetes workloads run on truly sovereign infrastructure. You also have the ability to integrate S3-compatible object storage directly into the platform, completely independent of US hyperscalers.
The Cloud Illusion: Why a Server Location in Germany Doesn’t Guarantee Digital Sovereignty
A German data center alone isn’t enough: How the US Cloud Act, Schrems II, and vendor lock-in undermine real data sovereignty – and how lowcloud closes the developer experience gap.
Deployment as a Bottleneck: When AI Codes Faster Than You Can Deploy
AI is fundamentally changing software development. But if you code in real-time and take weeks to deploy, you just shifted the problem. Why deployment is the real bottleneck – and how to solve it.