Загрузка больших файлов и $r->request_body_file

Sergey Serov mpa at corg.net
Fri May 19 17:01:34 MSD 2006


On Friday 19 May 2006 09:34, Igor Sysoev wrote:
> On Fri, 19 May 2006, Sergey Serov wrote:
> > On Friday 19 May 2006 06:30, Igor Sysoev wrote:
> >> On Wed, 17 May 2006, Sergey Serov wrote:
> >>> Если ли способ получить $r->request_body_file без использования модуля
> >>> ngx_http_perl_module?
> >>> Исходники посмотрел, вроде отдельной переменной для этого нет, но может
> >>> плохо смотрел.
> >>
> >> Нет, а как это использовать в nginx без перла ?
> >
> > Передавать backend'у в заголовках или fastcgi параметрах.
> > В конкретном моем случае мне нужно реализовать возможность загрузки
> > файлов, напр. CD имиджей. Backend - перловый fastcgi скрипт, он будет
> > принимать путь к телу запроса, далее передавать его специальному демону,
> > который это тело парсить будет уже без участия скрипта.
> >
> > Если бы nginx мог бы парсить multipart запрос и вырезать оттуда контент
> > загружаемых файлов и сообщая их затем каким-либо особым образом, то было
> > бы проще. Это можно было легко прикрутить к соотв. интерфейсам скриптовых
> > модулей.
> > Напр. вместо
> >
> > Content-Disposition: form-data; name="fileupload[]"; filename="file.txt"
> > Content-Type: text/plain
> >
> > file txt content
> >
> > -----------------------------995254900371922149465325823
> > Content-Disposition: form-data; name="tos"
> >
> > 1
> > -----------------------------995254900371922149465325823--
> >
> > nginx мог бы передать
> >
> > Content-Disposition: form-data; name="fileupload[]"; filename="file.txt"
> > Content-Type: text/plain
> >
> > /var/www/uploads/1212398488
> >
> > -----------------------------995254900371922149465325823
> > Content-Disposition: form-data; name="tos"
> >
> > 1
> > -----------------------------995254900371922149465325823--
> >
> >
> > Т.е. вместо контента файла - путь к нему на диске.
> > И тогда собственно $r->request_body_file ни в каком виде больше не нужен
> > для цели загрузки больших файлов.
> > Думаю, фича была бы полезной для многих. Под nginx много всяких
> > файло-помоек живет, и локальных, и глобальных.
>
> Переменную $request_body_file сделать несложно, парсинг занчительно
> сложнее. А почему бы не класть файлы PUT'ом
> http://sysoev.ru/nginx/docs/http/ngx_http_dav_module.html ?

DAV штука замечательная, но браузеры его не поддерживают.
Только через AJAX можно PUT делать, да и то, насколько я понял только в IE.
Или я не прав и за последнее время что-то изменилось?






More information about the nginx-ru mailing list