WSGI字节范围服务

时间:2009-02-23 21:22:49

标签: python http http-headers wsgi middleware

我正在考虑在WSGI服务器/应用程序中支持HTTP/1.1 Byte serving

  • 恢复部分下载
  • 多部分下载
  • 更好的流媒体

WSGI PEP 333提到WSGI服务器可以实现字节服务的处理(来自RFC 2616第14.35.2节定义了Accept-Range / Range / Content-Range响应/请求/响应头)并且应用程序应该实现如果宣布能力:

  

服务器可以传输字节范围   应用程序的响应如果   客户要求的,以及   应用程序本身不支持   字节范围。然而,再次,   应用程序应执行此操作   如果需要,可以自行运作。

我已经执行了一些谷歌搜索,但发现很少有关于哪些可用的WSGI服务器/中间件/应用程序实现Byte-Ranges的信息?有没有人有这方面的经验,可以暗示我进一步挖掘的地方?

编辑:任何人都可以评论,我如何能够提出问题才能找到答案?

2 个答案:

答案 0 :(得分:3)

我认为webob可以解决这个问题,请参阅file example的结尾,以获得有效搜索所服务文件的范围请求实现。

答案 1 :(得分:0)

您只需使用WebOb并创建响应为Response(conditional_request=True)subclass the WebOb Response object,使conditional_request=True成为默认值。

conditional_request=True和请求范围时,WebOb的Response.app_iter_range将完整的响应包装起来,仅返回请求的范围。

WebOb file serving example显示了如何在不产生整个响应的情况下获得一系列字节的情况下实现自己的app_iter_range