Как бутылка возвращает бинарные файлы

Я хочу сделать веб-службу bottle python для обслуживания двоичных файлов, таких как pdf, picture и exe, с аутентификацией.

Можно ли обслуживать все эти файлы с помощью бутылки? Мне трудно найти учебник для этого.

Как насчет performance? Бутылочный питон обрабатывает сотни тысяч загрузок одновременно?

Я планирую использовать его с nginx uwsgi.


person Alvin    schedule 07.03.2013    source источник
comment
Что-то не так с настройкой заголовка Content-Type?   -  person phs    schedule 08.03.2013
comment
@drewk Мне нравится простая концепция бутылки. Попробую посмотреть на plone.   -  person Alvin    schedule 08.03.2013


Ответы (2)


Определенно можно обслуживать эти файлы с помощью бутылки. Вы просто используете их как статические файлы. Что касается аутентификации, я не верю, что бутылка поддерживает аутентификацию (насколько мне известно). Однако когда дело доходит до производительности, это та область, где она действительно зависит от того, как вы ее развернете. В среде с обычными потоками, где каждый запрос получает собственный обычный поток, я очень сомневаюсь, что ваш сервер сможет комфортно обслуживать сотни тысяч запросов одновременно. Однако в документации отмечается, что greenlets может позволить вам решить эту проблему.

Ресурсы:

Обслуживание статических файлов Bottle: http://bottlepy.org/docs/dev/tutorial.html#routing-static-files

Гринлеты из бутылок: http://bottlepy.org/docs/dev/async.html#greenlets-to-the-rescue

person IT Ninja    schedule 08.03.2013

Если вы не спешите, я предлагаю вам попробовать uWSGI 1.9 (он все еще находится в разработке, но первая стабильная версия будет через 10 дней) и использовать offload-threads = n (установите его на количество процессоров). Таким образом, когда вы отправляете файл из своего приложения, он будет асинхронизирован (и не блокирован) обслуживаться другим потоком, внезапно освобождая вашего рабочего. Разгрузка доступна и в версии 1.4, но она не является автоматической для приложений, как в версии 1.9.

person roberto    schedule 08.03.2013