2009-02-23 6 views
5

Я ищу в поддержку HTTP/1.1 Byte serving в WSGI сервера/приложения для:WSGI байт диапазонов служит

  • возобновление частичных загрузок
  • Загрузки нескольких частей
  • лучше потокового

WSGI PEP 333 упоминает что сервер WSGI может реализовывать обработку байтового обслуживания (от RFC 2616, раздел 14.35.2 определяет ответ Accept/Range/Content-Range/запрос/ответ h eaders) и приложение должны осуществить его, если объявляет о возможности:

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

Я выполнил некоторые действия в Google, но не нашел информации о том, какой из доступных WSGI-серверов/промежуточного программного обеспечения/приложений реализует байтовые диапазоны? Кто-нибудь имеет опыт работы в этой области и может намекнуть мне, что нужно копать дальше?

EDIT: Может кто-нибудь комментировать, как я могу улучшить вопрос, чтобы найти ответ?

+0

Если вам здесь не повезло, попробуйте http://mail.python.org/mailman/listinfo/web-sig. Лично я не чувствую, что диапазоны байтов и wsgi подходят друг другу. – Constantin

+0

сделаю. Я даже подготовил сообщение в своих проектах, которые ждут день или два, чтобы узнать, есть ли здесь какой-либо ответ. – myroslav

ответ

3

Я думаю, webob может сделать трюк, см. Конец file example для реализации запроса диапазона, который эффективно ищет в обслуживаемом файле.

0

Вам просто нужно использовать WebOb и создать ответ как Response(conditional_request=True) или subclass the WebOb Response object, делая conditional_request=True по умолчанию.

Когда conditional_request=True и запрос, заданный для диапазона, Response.app_iter_range, WebOb завершает полный ответ, чтобы вернуть только запрошенный диапазон.

WebOb file serving example показывает, как вы могли бы реализовать свой собственный app_iter_range для случаев, когда было бы целесообразно получить диапазон байтов без генерации всего ответа.