upload module 2.0.8

Rauan Maemirov rauan at maemirov.com
Thu Dec 25 14:38:05 MSK 2008


Во-во, самое то, если можно будет ставить несколько фильтров.
Почему бы не сделать возможность переключения режимов ограничения
мягкое/жесткое?

А по поводу сообщений об ошибке, можно сделать что-то вроде заранее
заготовленных типов ответа:

upload_filter_type_failure "{response: 'not valid type'}"; # тут в
кавычках любая строка
upload_filter_size_failure "{response: 'size to big'}";

Сорри, наверное я наглею, но ведь на то она и dev-ветка, чтобы
предлагать туда фичи. :)


2008/12/25 Valery Kholodkov <valery+nginxru at grid.net.ru>:
> В 2.1.1 ограничение размера файла по типу можно попытаться сделать фильтрами
> (я не пробовал, но по идее должно работать):
>
> upload_filter image/jpeg image/png image/gif {
>    upload_max_file_size 10m;
> }
>
> Однако, как я уже писал в документации, это "мягкое" ограничение. Возможно
> имеет смысл превратить его в "жесткое", но клиенту придется выдавать
> нерелевантное возникшей ситуации сообщение об ошибке.
>
> Rauan Maemirov wrote:
>>
>> Идея в том, чтобы ограничивать загрузку по типу файлов (выше написано
>> про то, что он прописывается в начале файла) и размеру на стадии
>> _начала_ загрузки, а не после.
>>
>> Вы сами говорите, что не прочитать. :) А проверять тип по наличию
>> расширения в конце файла не очень правильно.
>>
>> Да и вообще, проверка правильности типов и ограничение размера на
>> клиенте - не есть лучшее решение. Чтобы обойти, достаточно отключить
>> js.
>>
>> И еще, я упомянул про взятие mime-type'а из файла потому что не все
>> браузеры отправляют нужные типы. Opera и IE, вообще, 50/50.
>>
>>
>> 2008/12/25 Alexey Kovyrin <alexey at kovyrin.net>:
>>>
>>> То, что вы рассказываете - это нужно на клиенте делать. Там, афаир,
>>> вам доступно только имя файла (и то не уверен). Контент файла
>>> жабаскриптом не почитать. Или я что-то не так понял в вашей идее?
>>>
>>> 2008/12/24 Rauan Maemirov <rauan at maemirov.com>:
>>>>
>>>> Упс, не до конца объяснил (фича-реквест).
>>>>
>>>> Допустим есть сервис, на который загружаются только определенные типы
>>>> данных, если презентации, то pdf, ppt и т.д. для видео -
>>>> видеоформаты... музыка, картинки и т.д.
>>>>
>>>> Конечно можно проверять после загрузки, но вот в чем фишка:
>>>>
>>>> Как обычно делают все сервисы? Сначала грузишь себе огромный файл,
>>>> ждешь пока догрузится, а потом тебе сообщают, что такой тип файлов не
>>>> поддерживается. А между тем мы съели траффик, пользователь огорчился
>>>> (ну не знал он, что .exe - это не mp3-песенка), не говоря о том, что
>>>> грузились ресурсы...
>>>>
>>>> А вот если бы сразу проверялись типы данных и выкидывались если не
>>>> поддерживается формат.
>>>>
>>>> Было бы вообще супер, если можно делать что-то вроде map. Ограничение
>>>> для длинного списка форматов видео - 100mb, картинок - 2mb, список
>>>> аудиоформатов - 5mb.
>>>>
>>>> 2008/12/24 Александр Кутузов <alleteam at gmail.com>:
>>>>>
>>>>> Это называется mime-magic,
>>>>> вопрос только на..я?
>>>>>
>>>>> 25.12.2008, в 0:23, Rauan Maemirov написал(а):
>>>>>
>>>>>> Вряд ли, расширение можно поменять... Разве тип содержимого не
>>>>>> записывается в начале файла?
>>>>>>
>>>>>> 2008/12/24 Valery Kholodkov <valery+nginxru at grid.net.ru>:
>>>>>>>
>>>>>>> Долго пытался понять каким образом и из какого файла их извлекать.
>>>>>>> Может
>>>>>>> из
>>>>>>> имени загружаемого файла?
>>>>>>>
>>>>>>> Rauan Maemirov wrote:
>>>>>>>>
>>>>>>>> Кстати, еще один момент. Можно ли сделать так, чтобы mime_type-ы
>>>>>>>> брались из файла, а не из header-ов?
>>>>>>>>
>>>>>>>> 2008/12/22 Valery Kholodkov <valery+nginxru at grid.net.ru>:
>>>>>>>>>
>>>>>>>>> Думаю, это воспроизводимо, если клиент запрашивает прогресс в тот
>>>>>>>>> момент,
>>>>>>>>> когда результативное тело в процессе отсылки или обработки
>>>>>>>>> бакэндом.
>>>>>>>>> Посмотрю upload progress на досуге ещё раз.
>>>>>>>>>
>>>>>>>>> Тем не менее, объединение двух модулей было бы архитектурной
>>>>>>>>> ошибкой,
>>>>>>>>> по
>>>>>>>>> той же причине, по какой в юниксе не объединены вызовы fork и exec
>>>>>>>>> --
>>>>>>>>> можно
>>>>>>>>> получить больше вариантов использования. А именно upload без
>>>>>>>>> progress и
>>>>>>>>> progress без upload.
>>>>>>>>>
>>>>>>>>> ----- Original Message -----
>>>>>>>>> From: "Rauan Maemirov" <rauan at maemirov.com>
>>>>>>>>> To: nginx-ru at sysoev.ru
>>>>>>>>> Sent: Sunday, December 21, 2008 2:47:19 PM GMT +01:00 Amsterdam /
>>>>>>>>> Berlin
>>>>>>>>> / Bern / Rome / Stockholm / Vienna
>>>>>>>>> Subject: Re: upload module 2.0.8
>>>>>>>>>
>>>>>>>>> Когда файл догружается, прогресс не может определить размер файла
>>>>>>>>> (запроса), так как upload module переписывает POST. Я обращался к
>>>>>>>>> разработчику progress module, он обещал сделать версию для
>>>>>>>>> upload-а,
>>>>>>>>> опубликовал одну версию, но она не заработала... Это было месяца 3
>>>>>>>>> назад, видно забыл. :)
>>>>>>>>>
>>>>>>>>> Это конечно не критично, но все же когда из 20 мегабайт прогресс
>>>>>>>>> становится однобайтовым, пользователь может потеряться.
>>>>>>>>>
>>>>>>>>> 2008/12/21 Valery Kholodkov <valery+nginxru at grid.net.ru>:
>>>>>>>>>>
>>>>>>>>>> Что мешает использовать оба модуля в связке?
>>>>>>>>>>
>>>>>>>>>> Sergey Serov wrote:
>>>>>>>>>>>
>>>>>>>>>>> Модуль замечательный, только нехватает ему функциональности
>>>>>>>>>>> модуля
>>>>>>>>>>> upload_progress. Тогда было бы законченное и комплексное решение.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Regards,
>>>>>>>>>> Valery Kholodkov
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Regards,
>>>>>>>>> Valery Kholodkov
>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Regards,
>>>>>>> Valery Kholodkov
>>>>>>>
>>>>>>>
>>>>>
>>>>> Kind regards,
>>>>> Alexandr Kutuzov, alleteam at gmail.com
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>> --
>>> Alexey Kovyrin
>>> http://kovyrin.info/
>>>
>
>
> --
> Regards,
> Valery Kholodkov
>
>


More information about the nginx-ru mailing list