2009-03-31 4 views
1

Hat jemand ein besseres Code-Snippet für einen trivialen Python WebDAV Server? Der Code unten (der aus einigen Google-Suchergebnissen zusammengeschustert wird) scheint unter Python 2.6 zu funktionieren, aber ich frage mich, ob jemand etwas hat, das er vorher benutzt hat, ein wenig mehr getestet und abgeschlossen. Ich würde lieber ein Stdlib-Snippet über ein Drittanbieter-Paket bevorzugen. Es ist für einige Test-Code zu treffen, so muss nicht produktionswürdig sein.Gibt es ein besseres triviales Python WebDAV-Server-Code-Snippet als das?

import httplib 
import BaseHTTPServer 

class WebDAV(BaseHTTPServer.BaseHTTPRequestHandler): 
    """ 
    Ultra-simplistic WebDAV server. 
    """ 
    def do_PUT(self): 
     path = os.path.normpath(self.path) 
     if os.path.isabs(path): 
      path = path[1:] # safe assumption due to normpath above 
     directory = os.path.dirname(path) 
     if not os.path.isdir(directory): 
      os.makedirs(directory) 
     content_length = int(self.headers['Content-Length']) 
     with open(path, "w") as f: 
      f.write(self.rfile.read(content_length)) 

     self.send_response(httplib.OK) 

def server_main(server_class=BaseHTTPServer.HTTPServer, 
       handler_class=WebDAV): 
    server_class(('', 9231), handler_class).serve_forever() 
+6

Das ist ein HTTP-Handler, der PUT unterstützt, nicht WebDAV. –

Antwort

1

Sie können versuchen akaDAV. Es ist ein WebDAV-Modul für Twisted.

Ich denke, es ist nicht mehr gepflegt, aber ich habe es zu arbeiten und es unterstützt die meisten Operationen (außer Sperren).

4

Oder versuchen Sie WsgiDAV, die eine überarbeitete Version von PyFileServer ist.

Verwandte Themen