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

Igor Sysoev is at rambler-co.ru
Fri May 19 13:34:58 MSD 2006


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 ?


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list