Search code examples
spring-bootwebdavcollaborative-editing

How to implement collaboration in WebDAV Server?


I had a requirement of editing my AWS-S3 uploaded MS Office documents from the browser. So, we created our own WebDAV server on Apache using the httpd extension. Workflow is explained in the below diagram and description.

enter image description here

Now editing is working just fine. My UI Client hits Spring boot API on WebDAV Server. It will copy the abcd.docx -> S3 object to the WebDAV folder let's say var/www/html/webdav. Now the path to a file becomes var/www/html/webdav/abcd.docx. I send file path to UI clients like https://www.mywebdavserverxyz.com/webdav/abcd.txt. I open this document in the local Microsoft office application like :

<a href='ms-word:ofe|u|https://www.mywebdavserverxyz.com/webdav/abcd.txt'>Edit</a>

Now my question is if I want to enable collaborative editing then which options do I have and which one is best? currently, a single user is able to edit the file at a time, for others file is opening in read-only mode.


Solution

  • Co-authoring using WebDAV is not possible.

    However, if you modify your WebDAV server to implement shared locks, when the second user goes to edit the document they will receive a message that the document is currently being edited and they can decide to continue editing, once the initial user UNLOCKs the document their changes will be merged into the second users changes (if any).