Загрузка больших файлов и $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