UNIXwork

WsgiDAV - ein einfacher WebDAV-Server

30. Oktober 2022

WsgiDAV ist ein in Python geschriebener WebDAV-Server, der sowohl stand-alone über HTTP oder über WSGI in Kombination mit einem Webserver verwendet werden kann. Die Feature-Liste beinhaltet:

Was mich natürlich interessiert ist, ob Dead Properties richtig funktionieren und XML-Namespaces korrekt behandelt werden (nicht so wie bei anderen). Dazu habe ich aus dem WebDAV-RFC den Beispiel-Request aus Section 9.2.2 ausgeführt.

<?xml version="1.0" encoding="utf-8" ?>
<D:propertyupdate xmlns:D="DAV:"
	 xmlns:Z="http://ns.example.com/standards/z39.50/">
<D:set>
 <D:prop>
   <Z:Authors>
	 <Z:Author>Jim Whitehead</Z:Author>
	 <Z:Author>Roy Fielding</Z:Author>
   </Z:Authors>
 </D:prop>
</D:set>
<D:remove>
 <D:prop><Z:Copyright-Owner/></D:prop>
</D:remove>
</D:propertyupdate>

Dieser speichert eine Property mit XML-Werten, die Namespace-Definition dazu ist allerdings im Root-Element, nicht im Property-Element Z:Authors. Einige Server-Implementierungen haben mit dieser Art Request Probleme. WsgiDAV hingegen verarbeitet dies problemlos. Man muss allerdings dazu sicherstellen, dass Dead Properties aktiviert sind und persistent gespeichert werden. Dazu muss der property_manager konfiguriert sein:

# Property Manager
# null: (default) no support for dead properties
# true: Use wsgidav.prop_man.property_manager.PropertyManager
#       which is an in-memory property manager (NOT persistent)
#
# Example: Use persistent shelve based property manager
property_manager:
    	class: wsgidav.prop_man.property_manager.ShelvePropertyManager
    	kwargs:
        	storage_path: 'wsgidav-props.shelve'

Ein anderer Test von mir war dav-sync. Auch dies funktioniert problemlos. Bisher war meine Empfehlung für einen Server für dav-sync in der Regel Apache. Wer einen anderen Webserver benutzt, dem kann ich hiermit jetzt WsgiDAV empfehlen.

Autor: Olaf | 0 Kommentare | Tags: webdav, dav

Kommentare


Name
Webseite (optional)
Captcha: 3x=12   x=?
Kommentar