Oddly enough right before I saw this post some alternatives were in my news feed.
https://itsfoss.com/news/minio-moves-away-from-open-source/
Highlights are:
SeaweedFS
Garage
RustFS
Of course their closed source alternative is called AIStor and it is crazy expensive because everyone now needs to pivot to AI
I hope chainguard keeps maintaining their fork https://github.com/chainguard-forks/minio
I’ve honestly never understood the need for s3 buckets. WebDAV satisfies my needs. I’m sure there are some use cases that require S3, but for the life of me I can’t think of one off the top of my head right now.
In my experience I’ve mostly seen it used for a local equivalent of S3 to plop in your dev environment. It’s pretty good if your prod depends on S3 and you don’t want to deal with the cost and latency of using actual S3 buckets during development.
Many cloud providers offer S3-compatible storage, so it’s a common protocol to use in applications. There are even some databases like SlateDB that fully rely on object storage for everything. Being able to have local S3 compatible storage is useful if you want the storage of your local machine while still doing so over a widely compatible protocol.
A quick web search shows slatedb supports WebDAV through Rust’s object_store interface, or at least it does at first glance.
WebDAV is a wonderful standard and it is compatible with all kinds of things that seem to be overlooked. S3 has turned into this monster of a thing that’s “owned” by AWS vs a nice usable RFC that anybody can implement and know if it actually changes.
object_store does indeed also support WebDAV among a variety of other protocols, Apache Druid or Apache Pinot probably would be better examples. My only experience with WebDAV is with Nextcloud and hasn’t been that great because it has been very slow, probably should look into it sometime.
EDIT: Apparently it supports CAS, and even has a locking mechanism
Shit, I am actually building a webtool and thought Minio could be a good part to be a file storage in it. What’s an good alternative?
Edit: I try “garage”
There’s also SeaweedFS that I’ve used as an S3 compatible fileserver
S3 compatibility is nice I guess if you need S3 compatibility but also… why would you need that?
sshfs does everything I need and compatibility is almost native.
SSHFS is a hack and has nothing to do with the proposal of S3 compatible backends
So enlighten me then, save me from my terrible hack that is working fine for me and tell me what it DOES have to do with. I thought S3 was a remote filesystem you can use, essentially Amazon’s proprietary version of webdav where you get a http bucket you can only access with aws proprietary tools. What’s the attraction? Clearly it seems like people love it, and I am getting dunked on for asking an honest question, which feels a bit unhealthy and unpleasant for the self-hosting community.
Am I supposed to be familiar with AWS infrastructure as a prerequisite for being here?
S3 is designed for being used by applications via API, for example you can easily save and retrieve files from it even with a JavaScript application. It is much more difficult to do the same with sshfs
If instead you use it mounted on a computer, S3 is worse because each time you need to list its contents that’s an API request, if you have hundreds of thousands of files then it’s thousands of API reuqests
ok, to start with, if you need a POSIX interface to the filesystem, you already have an SSH connection to that server, and don’t need much stability across multiple clients, SSHFS may do just fine. For a homelab, that is likely the case.
now, if you’re hosting a web server that needs data distributed across drives/nodes, data redundancy, and the usage is primarily programmatic, closer to a CDN’s or machine learning pipeline than a single user browsing files; then you want an S3-compatible solution. The S3 API makes it easier to plug it into your application, while allowing you to migrate to a different one - which I’m actually currently doing for a MinIO deployment at work.
Sshfs has way more overhead and doesn’t do remotely the same thing
Many cloud providers offer S3-compatible storage, so it’s a common protocol to use in applications. There are even some databases like SlateDB that fully rely on object storage for everything. Supporting more API’s is extra work (unless you’re using OpenDAL) so most people pick S3 compatible API’s because they’re the most widely supported across all cloud platforms.
Kubernetes storage is the reason I was looking at Minio in the past.
Sadly I only recognized it as “the thing you put in your docker compose for integration tests”.