ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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



 




Copyright © Lexa Software, 1996-2009.