Cannot upload content on Plone 5.2.2 over WebDAV

Environment

  • Environment type: Standalone Plone instance on a VMware Player VM
  • Plone version: 5.2.2
  • Python version: 3.7.3
  • Guest OS: Debian 10 Buster
  • VM hardware: 8 cores, 8 GB RAM, 2 GB free space
  • Physical OS: Debian 10 Buster, AMD64
  • Physical machine build: AMD FX 8350, 32 GB RAM, Nvidia Geforce GTX 1070, Asus M5A99X EVO R2.0 motherboard, 1 TB SSD

I am starting a Plone website and I need to upload a large number of files into my Plone instance. I have already made sure to enable the "WebDAV access" permission for all http://(my Plone instance address):9080/manage_access , and I can log in to my server over WebDAV and view my folders.

However, I cannot create or upload any content. I have tried so far with Linux MATE and with Windows 8.1's explorer.exe as WebDAV clients.

In MATE, on the same VM where I run Plone, whenever I try to paste something I get "Error while creating directory untitled folder - There was an error creating the directory in dav://(my username)@localhost:9080/(my site)/(my folder) - Not found" In Windows, meanwhile, I get "Could not find this item - This is no longer located in \\(VM IP address)@9080\DavWWWRoot\(my site). Verify the item's location and try again".

This is after having upgraded to Plone 5.2.2, after finding out that WebDAV was broken on Plone 5.2.1 and later fixed on 5.2.2.

Any idea of what I could be missing?

You need to enable WebDAV on the WSGI level (wsgi.ini)...sorry, but I forgot how :slight_smile:

Having read documentations and manuals, here's what I have tried:

  1. Specify on <Plone root>/zinstance/buildout.cfg, under the [instance] section, the directive wsgi-ini-template = <Plone root>/zinstance/wsgi_webdav.ini.

  2. Locate the default wsgi.ini file and copy it to <Plone root>/zinstance/wsgi_webdav.ini

Now Buildout won't even complete. From the error output I can make out that I might be missing a wsgi-options parameter or section, but after having read the official documentation on WSGI on https://training.plone.org/5/wsgi/prz-recipe-options.html#wsgi-ini-template I still can't figure out how to put it on my Buildout configuration.

What else am I missing?

New updates on this issue:

I tried to set up this on buildout.cfg, according to the WebDAV guide on https://docs.plone.org/develop/plone/serving/webdav.html:

[instance]
[...]
wsgi = on
webdav-address = 1980
zope-conf-additional =
   <webdav-source-server>
   address localhost:1980
   force-connection-close off
   </webdav-source-server>

Then I added webdav to my eggs on the [buildout] section:

[buildout]
[...]
eggs =
[...]
    webdav

Still no luck with Buildout. This is what I get:

The following part definition lists the versions picked:
[versions]
psycopg2-binary = 2.8.6
webdav = 1.1.7
instance: Error: unknown type name: 'webdav-source-server'
(line 36 in file:///opt/plone/plone522/zinstance/parts/instance/etc/zope.conf)
For help, use /opt/plone/plone522/zinstance/bin/instance -h

New updates on this issue:

The wsgi-ini-template option simply will not work. Every time I put it, Buildout fails. I tried putting the following option under the [instance] section and still no luck:

wsgi-options =
   webdav-address 9080

At this point I'm going to have to call it quits and resort to using Plone as a headless CMS and migrate to an Apache server that connects to my Plone server because I just can't upload my content no matter what.

I recently restored webdav support on Python3: https://github.com/plone/plone.dexterity/pull/142
I have just tested uploading a file with plone.dexterity master and it works.

Let me know if that works and if it does not please let me know!

1 Like

For plain Zope this is working

Plone Foundation Code of Conduct