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 много всяких файло-помоек
живет, и локальных, и глобальных.