1

有没有人为简单的 Python WebDAV服务器提供更好的代码片段?下面的代码(从一些谷歌搜索结果拼凑而成)似乎在 Python 2.6 下工作,但我想知道是否有人有他们以前使用过的东西,经过更多测试和完整。我更喜欢仅 stdlib 的片段而不是第三方包。这是一些测试代码的命中,因此不必具有生产价值。

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()
4

3 回答 3

5

或者试试WsgiDAV,它是 PyFileServer 的重构版本。

于 2009-07-14T16:05:47.493 回答
1

你可以试试akaDAV。它是 Twisted 的 WebDAV 模块。

我认为它不再被维护,但我已经让它工作并且它支持大多数操作(除了锁)。

于 2009-04-01T08:32:31.367 回答
1

WsgiDAV

于 2010-08-24T07:22:30.467 回答