Есть ли лучший тривиальный фрагмент кода Python WebDAV-сервера, чем этот? - PullRequest
1 голос
/ 31 марта 2009

У кого-нибудь есть лучший фрагмент кода для тривиального сервера Python WebDAV ? Приведенный ниже код (который составлен из некоторых результатов поиска Google), похоже, работает под 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()

Ответы [ 3 ]

5 голосов
/ 14 июля 2009

Или попробуйте WsgiDAV , который является переработанной версией PyFileServer.

1 голос
/ 24 августа 2010
1 голос
/ 01 апреля 2009

Вы можете попробовать akaDAV . Это модуль WebDAV для Twisted.

Я думаю, что он больше не поддерживается, но он работает, и он поддерживает большинство операций (кроме блокировок).

...