Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: resumable upload
On 05/08/2013 07:03 PM, Maxim Dounin wrote:
Hello!
On Tue, May 07, 2013 at 09:37:38PM +0200, Valery Kholodkov wrote:
On 03/29/2013 11:46 PM, Anatoly Mikhailov wrote:
On Mar 29, 2013, at 7:38 PM, Andrey N. Oktyabrski <ano@xxxxxxxxx> wrote:
On 29.03.2013 17:02, Валентин Бартенев wrote:
Просто когда дело заходит о том, что на грамотную реализацию и последующую
поддержку этого кода нужно потратить сколько-то человеко-часов, которые должен
кто-то оплатить, то часто выясняется, что большинству вопрошающих не очень то
оно и нужно было.
Большинство вопрошающих вполне устраивал upload_module.
P.S. Пожалуй, это тупиковая ветвь дискуссии.
тупиковая, он поломался с nginx 1.3.9, а автор этого плагина забил на поддержку
уже как полгода.
Пожалуй, это подходящий момент, чтобы прокоментировать ситуацию.
Конечно, я мог бы ответить в стиле Валентина Бартенева -- "был бы
спрос, мы бы всё сделали". Иными словами, "дайте денег -- всё
будет".
Однако, я считатю, что подобный ответ не соответствует моему уровню.
Предлагаемая бизнес-модель не работает, я проверил это на
собственном опыте. В то же время, поддерживать этот модуль на
собсвтенном энтузиазме мне тоже не имеет смысла, так как я уже вырос
из nginx (sic!).
Nginx меня многому научил, и у меня появилось множество идей того,
как всевозможные вещи реализовать на более высоком уровне, гибче и
доступнее. Более того, часть из своих гипотез я уже успел проверить.
Однако, я пока не уверен, что это выльется в конкретный проект.
Поэтому, как видите, ситуация не может сдвинутся с мертвой точки,
несмотря на то, что в nginx достаточно было бы поправить несколько
строк.
Валерий, если есть конкретные предложения, какие именно строки
поправить в самом nginx'е - пожалуйста, выскажи их.
Чтобы работало достаточно вернуть переменную to_write в
ngx_http_request_body_t.
Мне, к сожалению, не кажется, что дело ограничется парой строчек.
Чтобы нормально работать с телом запроса - нужен, в первую
очередь, механизм для этого, чтобы не приходилось, как это сейчас
сделано, переизобретать чтение тела запроса в каждом модуле,
которому что-то с телом надо сделать.
Я потратил некоторое время на создание такого механизма в рамках
работы над поддержкой chunked-запросов, но a) upload модуль
придётся заметно переписать, чтобы использовать этот механизм и
б) скорее всего нужно будет ещё что-то допиливать, чтобы с этим можно
было нормально работать из сторонних модулей.
Если вдруг есть желание заняться/посмотреть - то патч можно взять
тут:
http://mailman.nginx.org/pipermail/nginx-devel/2013-March/003492.html
У меня самого где-то валяется подобный кусок кода. Проблема заключается
в HTTP pipelining. Я уже два года назад просил механизм возвращения
буферов в заголовок запроса. Без этого нельзя выйти из ситуации, когда
за телом запроса незамедлительно следует часть заголовка следующего запроса.
Из известных проблем - оно несовместимо со spdy, у которого, всилу
особенностей протокола, совсем своя логика чтения тела запроса.
--
Best regards,
Valery Kholodkov
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|