Обслуживание диапазонов байтов WSGI - PullRequest
5 голосов
/ 24 февраля 2009

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

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

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

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

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

РЕДАКТИРОВАТЬ: Кто-нибудь может прокомментировать, как я могу улучшить вопрос, чтобы иметь возможность найти ответ?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2009

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

0 голосов
/ 23 ноября 2009

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

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

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

...