WebDAV has been around a lot longer and does many of the same things as object storage. It also has support for random access read/writes where object storage requires you to download, edit, and re-upload the whole file. Seems like a no-brainer if you wanted to offer cloud storage to customers.
I thought maybe supporting large uploads was the draw, but WebDAV can support chunking, so you don’t need to allocate extra server resources to accommodate large files.
I use both daily, and WebDAV just seems like it does everything better: object storage feels like throwing files in a junk drawer and WebDAV more like an organized filing cabinet.
Aside from Nextcloud and a few FOSS applications, the only big thing I recall that adopted WebDAV was Frontpage back in the day.
So, what am I missing? What makes object storage so compelling that it became ubiquitous while WebDAV is practically a legacy spec?
Why can’t you do that for WebDAV? All of it is HTTP requests. You get your standard PUT/GET/POST/DELETEs for basic document interaction like on any API server, and then PROPFIND/PROPPATCH for getting/altering object properties, LOCK/UNLOCK for file locking, MKCOL for making directories (“collections”), COPY/MOVE for transferring files between servers/locations.
All of this could be implemented by a basic Javascript client today. The PROPFIND/PROPPATCH verbs take care of all the metadata. The input and output are XML (which the browser has easy APIs for) and are fully extensible. Anything from security groups to bandwidth limits could be configured through PROPFIND if you just make a schema for it.
I think WebDAV would fit the bill perfectly for Amazon S3. Basic file browsers like Windows Explorer may be limited to the core WebDAV spec in terms of metadata and XML properties, but there’s absolutely nothing preventing you from setting up a custom XML schema to add any metadata of your liking if you’re not trying to be a file server for desktop computers.
Do you know what part of the S3 API WebDAV would be missing? I reckon the (much easier) PROPFIND HTTP verb would take the place of most weird Amazon APIs like ListObjectsV2. It really looks like S3 is “WebDAV but not standard WebDAV” to me.