有没有比这更好的琐碎的Python WebDAV服务器代码片段?

时间:2009-03-31 19:58:46

标签: python webdav

有没有人为一个简单的Python WebDAV服务器提供更好的代码片段?下面的代码(从一些谷歌搜索结果拼凑而成)似乎在Python 2.6下工作,但我想知道是否有人有他们以前使用的东西, little 更多的测试和完整。我更喜欢仅限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()

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)