2015-02-10 66 views
0

当我使用google.appengine.api.urlfetch.fetch(或与make_rpc的异步变体)获取稳定流式传输数据的URL时,一段时间后我会按预期得到google.appengine.api.urlfetch_errors.DeadlineExceededError。由于这是一个我想要采样的流,因此将deadline设置为更高的值无法帮助,除非流完成(我不希望发生这种情况)。如何从Google App Engine的urlfetch获取部分结果?

似乎没有获得部分下载结果的可能性。至少API不提供任何东西。是否有可能

  • 要么请求下载的部分
  • 或只要求一定量的数据(因为我可以估计流的速率)来下载?

[澄清:既然是流,具有Range头部的请求将与200 OK而不是206 Partial Content回答]

回答

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

相关问题