More WebDAV
Preface
This document is intended as an update/addendum to the far more in-depth information found here: http://plone.org/documentation/how-to/webdav . This is current as of 11 Jul 2008, and is relevant to:
Zope 2.10
Plone 3.1.1
Apache 2.2.9
Debian(unstable), Ubuntu (Hardy), Gentoo, etc
WebDAV the Plone Way
Contrary to many references I found, Plone does *not* require Zope reconfiguration in order to enable WebDAV. One need not edit zope.conf, rather,simply pointing your WebDAV client at your Plone site should "just work". For example, using cadaver and the default Zope and Plone from Debian:
~# cadaver http://localhost:8080/MyPloneSite Authentication Required for MyPloneSite on server `localhost': Username: myuser Password: dav:/MyPloneSite/>
This method is not without drawbacks, however.
When downloading pages via a WebDAV connection directly to a Plone site, you will receive the *rendered HTML* version of the page, such as you would see in your web browser, not the raw content. This makes it basically impossible to edit pages when accessing a Plone site in this way. Managing binary files and images with this method appears to work fine. (See here for more info)
This method also worked without errors with Apache proxying in front of the Plone site.
WebDAV the Zope Way
Although Plone does not require modification to the Zope config to provide WebDAV access, many older docs still reference this and should you want DAV access outside of your Plone site, you will need to enable this feature in Zope.
Apache
While the direct Zope method works in the basest sense, I found it to be extremely problematic both in regard to Apache proxying and client support. Proxying from the root of an apache virtual host to the root of the WebDAV service appears to work fine:
ProxyPass / http://localhost:1980/ ProxyPassReverse / http://localhost:1980/
however, proxying from a subdirectory in an Apache site *DOES NOT WORK*. For example, the following Apache config was not successful:
ProxyPass /dav/ http://localhost:1980/
ProxyPassReverse /dav/ http://localhost:1980/
And neither was this:
ProxyPass / http://localhost:1980/PloneSite/ ProxyPassReverse / http://localhost:1980/PloneSite/
Using the latter two configs, clients were unable to identify any folder as a WebDAV collection.
According to to webdav.org, this may be due to lack of support for the extra HTTP methods used by DAV, though there was no clear reason why the first example works and the second does not. I could confirm that a PROPFIND of "/" using the first example successfully identified the path as a WebDAV collection, whereas a PROPFIND on "/dav/", using the second example, did not.
Clients
WebDAV clients, including Windows and Mac OS X, are covered pretty well here: http://plone.org/documentation/how-to/webdav
Here are a few more to add to the list.
Command line clients -
dave - http://www.webdav.org/perldav/dave.html
cadaver - http://www.webdav.org/cadaver/
nautilus -
The gnome file manager. Nautilus can access WebDAV shares as if they were part of the filesystem. Uses a slightly different URL syntax than other clients, such as:
dav://site.com/your_folder
Or with SSL
davs://site.com/your_folder
konqueror -
The KDE (3 and below) file manager and web browser. Can also open WebDAV shares, also uses a slightly different URL syntax:
webdav://site.com/your_folder
or, with SSL
webdavs://site.com/your_folder
External References
Some pages that I found helpful
http://chapters.marssociety.org/webdav/
http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/
https://bugs.launchpad.net/zope2/+bug/143447
http://www.webdav.org/other/proxy.html

Author: