upload module 2.0.8
Valery Kholodkov
valery+nginxru at grid.net.ru
Thu Dec 25 13:59:37 MSK 2008
В 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