Загрузка больших файлов и $r->request_body_file
Sergey Serov
mpa at corg.net
Fri May 19 12:02:52 MSD 2006
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 много всяких файло-помоек
живет, и локальных, и глобальных.
More information about the nginx-ru
mailing list