Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Вопрос по client body in file only в контексте file upload
Hello!
On Mon, Oct 14, 2013 at 08:07:57AM -0400, naive wrote:
> > Каталог для хранения временных файлов не предназначен для того,
> > чтобы в нём держали файлы дольше, чем это необходимо для обработки
> > этих файлов. Фатальных проблем при коллизиях не возникнет, см.
> > выше, но и хорошего тоже немного.
>
> По идее, весь метод с использованием client_body_in_file_only и
> client_body_temp_path изначально не предназначен для handling file upload.
Директива client_body_in_file_only как раз предназначена для того,
чтобы лишний раз не гонять тело запроса в рамках одной машины, а
записать его на диск и передать на обработку бекенду уже файл. И
та же функциональность используется в модуле DAV, но уже в рамках
самого nginx'а.
> Тем не менее, если уж использовать эту возможность, то хотелось бы избежать
> лишних действий (перемещения файлов/смены имен) и установки чего-то кроме
> nginx-extras на storage-машину.
Где вы видите лишнее действие? Файл записывается в каталог для
временных файлов под временным именем, после окончания загрузки,
если всё хорошо, - перемещается куда надо под постоянным именем
и/или обрабатывается иначе. Если вдруг во временном каталоге
остаются файлы на время большее, чем нужно для обработки - это
повод предположить наличие проблемы и заняться её решением.
Перемещение файла в рамках одной файловой системы - крайне дешёвая
операция, не стоит на ней экономить. На неудобстве работы с
получившейся помойкой, а равно на попытках найти свободное имя
для очередного файла, если файлов будет действительно много, вы
потеряете больше.
Что до установки "чего-то", то в указанном вами пакете есть как
минимум два встроенных в nginx скриптовых языка, на которых можно
сделать любую обработку.
[...]
> > Возможность влиять на имена файлов есть и сейчас, она подробно
> > документирована тут:
> >
> > http://nginx.org/r/client_body_temp_path
> >
> > А именно - можно задавать желаемую иерархию подкаталогов. Более
> > никаких возможностей для влияния не планируется.
>
> Речь как раз шла про имена файлов, поскольку level 1-3 помогает лишь решить
> вопрос максимального количества файлов в папке, но не их общего
> максимального количества и именования.
Я прекрасно понял ваш вопрос, и ответил на него максимально
подробно. Вопросов, которые вы пытаетесь решить - не стоит
при использовании client_body_temp_path по назначению. И по этой
же причине не сущетсвует планов по решению этих вопросов.
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|