One of the new features added in Slideshow version 3.10.0 is WebDAV server, which offers yet another way how to access files displayed on screen and upload new ones. This post aims to explain little little bit about this feature from the technological point of view. More information for Slideshow’s users can be found in the documentation.
WebDAV is network protocol for file transfer built on top of HTTP protocol (which is used regularly for displaying web pages in browsers). It uses the same structure as HTTP protocol and uses HTTP headers and request/response body for communication between client and server. WebDAV can be used also together with encrypted HTTPS protocol, making it secure against man-in-the-middle attacks.
From the user’s point of view, it is very similar to commonly known FTP protocol, it offers almost the same functionality. Additionally, WebDAV offers better options for collaboration and can transfer also file metadata.
WebDAV in Slideshow
Slideshow uses Milton library for providing WebDAV interface. Because we are using same port as for web interface, WebDAV can’t run on the root path and
/webdav path has to be used.
Most regular commands are fully supported, such as creating, renaming, moving, deleting and downloading files and folders. Locking files is not supported.
Currently only HTTP Basic Authentication is supported by Slideshow’s WebDAV implementation. If you want to use WebDAV client integrated in Windows OS, you have to enable it through registry editor, set entry
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel to value
2. Otherwise, Windows supports only HTTP Digest Authentication. Supporting Digest Authentication on Slideshow’s side would require storing passwords in clear text (non-hashed), which is something we don’t support due to our security policy. If you are not comfortable changing registry settings in Windows (we fully understand if you aren’t), we suggest using alternative client, for example WinSCP.
On Linux, you can easily mount Slideshow’s data using davfs2 package (replace the IP address and port with the one you are using for Slideshow):
mount -t davfs http://192.168.1.100:8080/webdav /mnt/slideshow-webdav/
mount -t davfs https://192.168.1.100:8443/webdav /mnt/slideshow-webdav/