Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 16, 2010 15:23:01

AterCattus
От:
Зарегистрирован: 2010-09-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

HTTP file upload на python HTTP сервер

Есть простейший сервер на 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. Слов много, но постарался сразу ответить на возможные вопросы.



Офлайн

#2 Сен. 20, 2010 12:23:36

AterCattus
От:
Зарегистрирован: 2010-09-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

HTTP file upload на python HTTP сервер

Вопрос можно считать снятым - сделал “ручным” парсингом потока. Пара сотен строк со всей нужной мне логикой без каки-либо FieldStorage и т.п.



Отредактировано (Сен. 20, 2010 12:24:03)

Офлайн

#3 Сен. 20, 2010 13:11:43

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

HTTP file upload на python HTTP сервер

AterCattus
Вопрос можно считать снятым - сделал “ручным” парсингом потока. Пара сотен строк со всей нужной мне логикой без каки-либо FieldStorage и т.п.
тогда почему именно HTTP? можно ftp,torrent или другой протокол заюзать.

Офлайн

#4 Сен. 20, 2010 21:28:32

AterCattus
От:
Зарегистрирован: 2010-09-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

HTTP file upload на python HTTP сервер

Сервером принимаются файлы в multipart/form-data формате.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version