当我使用google.appengine.api.urlfetch.fetch
(或带有make_rpc
的异步变体)来获取稳定流式传输数据的网址时,过了一会儿,我会按预期获得google.appengine.api.urlfetch_errors.DeadlineExceededError
。由于它是我想要采样的流,因此将deadline
设置为更高的值无法提供帮助,除非流完成(我不希望发生这种情况)。
似乎没有可能获得部分下载的结果。至少API没有提供任何东西。是否可能
[澄清:由于它是一个流,带有Range
标头的请求将由200 OK
而非206 Partial Content
回复。]
答案 0 :(得分:4)
在致电urlfetch.fetch
时,您可以设置HTTP标头。 Range
标头是您在HTTP中指定部分下载请求的方式:
resp = urlfetch.fetch(
url=whatever,
headers={'Range': 'bytes=100-199'})
如果那些是您想要的100个字节。对于这样的部分下载等,您获得的HTTP状态代码应为206(不是GAE特定的)。有关详细信息,请参见http://en.wikipedia.org/wiki/Byte_serving。