Considering that Nextcloud supports file versioning, and it is able to use S3 versioning on the backend, would it be feasible to implement S3 as a secondary frontend, as an alternative to WebDAV, for the purpose of exposing file versioning to client applications?
Specifically, the general-purpose remote-volume-mounting application Mountain Duck supports S3 file versioning as a shell extension on Windows and Mac:
While there’s nothing stopping Nextcloud Desktop from implementing the same feature, the advantage of S3 as a frontend over just WebDAV is that versioning is baked into the protocol.
In addition to the possibility of using third-party shell-extension clients like Mountain Duck, an S3 frontend could simplify versioning for more specific use-case applications, like a photo client or a note-taking app like Joplin.
While, yes, as a server administrator I could set up
davfs2 and MinIO NAS gateway, using WebDAV (and
davfs2) as the means of communicating between MinIO and Nextcloud means that I wouldn’t actually be able to use Nextcloud file versioning, and also every single S3 “bucket” would have to be manually set up in the command line.
So, uh, yeah, presumably in order for S3 versioning to work as a Nextcloud frontend, it would have to be implemented within Nextcloud itself, which I am not in any way qualified to do. MinIO could potentially be used with minimal modification (assuming it supports versioning), but Nextcloud would have to understand what it is and provide a user interface for it. Regardless, it would be a major undertaking. It would just be really nice to be able to combine Nextcloud’s management abilities with frontend protocols other than just WebDAV, specifically a frontend like S3 that natively supports versioning.