nginx-0.4.7
Sergey Serov
mpa at corg.net
Wed Oct 11 00:55:28 MSD 2006
On Wednesday 11 October 2006 00:26, Igor Sysoev wrote:
> On Tue, 10 Oct 2006, Sergey Serov wrote:
> > On Tuesday 10 October 2006 20:14, Igor Sysoev wrote:
> >> *) Добавление: переменная $request_body_file.
> >
> > А можно попросить небольшое дополнение к этой переменной?
> > Было бы неплохо в имени файла на диске передавать также и информацию
> > преполагаемом размере тела запроса? Это позволило бы реализовать upload
> > progress.
> >
> > Собсвенно неск. месяцев назад для этой цели я и патчил nginx и upload
> > progress был реализован.
> > Думаю это относительно легко сделать и многим наверняка было бы
> > интересно.
>
> С помощью $request_body_file нельзя сделать upload progress, потому что
> тело запроса сначала полностью принимается и только потом запрос
> передаётся бэкенду.
Можно, правда через задницу :-)
Делал в начале лета, все было функционально, потом проект был временно
заморожен, вот на днях опять начну им заниматься.
Сделано было через специальный скрипт который постоянно мониторил директорию с
телами запросов и читал оттуда первые сотню байт для идентификации запроса по
урлу, а затем клал в базу информацию о текущем размере тела запроса.
Далее ajax'ом дергался другой скрипт который сообщал уже текущий статус
запроса. (Далее файл пережимался и резался раром, о чем тоже подробно
сообщалось юзеру).
Все работало и было полностью функционально, за исключением того, я пропатчил
nginx чтобы сделать переменную $request_body_file, но сделал это как-то криво
и nginx падал при попытке передать эту переменную fastcgi скрипту, но при
этом нормально передавал ее по http апрстриму.
А раз теперь уже есть такая переменная, то просто замечательно.
>
> Что касается upload progress, то я планирую сделать API фильтров при
> чтении тела запроса, которое позволит
> 1) сделать upload progress внтури nginx'а,
> 2) обработку тела запроса - сохранение файлов из POST'а.
Судя по всему фича будет очень востребованной и даже (п.2) уникальной.
More information about the nginx-ru
mailing list