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.
S3 is not made for you. It’s made for entities that need to store millions of objects, with thousands of different rules, reading/writing from hundreds of machines without coordination, and with consistent, low latency. Now that some software use that as a storage layer, having an implementation for you is useful
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
I use an external S3 provider so that I only pay for the storage I use for the services I host. It’s dirt cheap, 0.00002750€ per GiB hour (excluding tax). Self-hosting something like MinIO for your app gives you the option of switching to an external provider later on, and it gives you flexibility in the location of the storage.
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.
S3 is not made for you. It’s made for entities that need to store millions of objects, with thousands of different rules, reading/writing from hundreds of machines without coordination, and with consistent, low latency. Now that some software use that as a storage layer, having an implementation for you is useful
So, it’s mostly used for overengineering?
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
I use an external S3 provider so that I only pay for the storage I use for the services I host. It’s dirt cheap, 0.00002750€ per GiB hour (excluding tax). Self-hosting something like MinIO for your app gives you the option of switching to an external provider later on, and it gives you flexibility in the location of the storage.