Форум сайта python.su
Есть простейший сервер на Python, обрабатывающий GET и POST запросы.
Можно найти массу одинаковых примеров в гугле.
В нем в POST принимаются данные от multipart/form-data с файлами через cgi.FieldStorage.
От сервера нужно сохранять файлы в конкретное место (может меняться для каждого конкретного файла) и собирать статистику о текущих загрузках.
Первая задача решается обработкой def make_file( self, binary=None ) для потомка cgi.FieldStorage, а вот со второй возникли проблемы.
Нужен какой-либо callback в моменты обработки куска загружаемого файла.
Накопал доп параметры для FieldStorage: file_callback, field_callback, но они только с версии 3.2, а в распоряжении есть 2.6.
Все найденные идеи и подходы работают через чистый cgi/mod_python/wcgi, где файл загружается на сервер внешним сервером, а python лишь обрабатывает итог.
Оф доки отсюда http://docs.python.org/library/internet.html]docs.python.org/library/internet.html по SocketServer, BaseHTTPServer и SimpleHTTPServer толком ничего не содержат. Больше инфы подчерпнул отсюда http://modpython.org/live/current/doc-html/pyapi-util-fstor.html , но все равно не понятно.
Делать все на “ручном” разборе запроса непосредственно при получении без каких-либо оберток конечно вариант, но ищется существующий вариант, чтобы не изобретать велосипед.
P.S. Слов много, но постарался сразу ответить на возможные вопросы.
Офлайн
Вопрос можно считать снятым - сделал “ручным” парсингом потока. Пара сотен строк со всей нужной мне логикой без каки-либо FieldStorage и т.п.
Отредактировано (Сен. 20, 2010 12:24:03)
Офлайн
AterCattusтогда почему именно HTTP? можно ftp,torrent или другой протокол заюзать.
Вопрос можно считать снятым - сделал “ручным” парсингом потока. Пара сотен строк со всей нужной мне логикой без каки-либо FieldStorage и т.п.
Офлайн
Сервером принимаются файлы в multipart/form-data формате.
Офлайн