2015-02-10 50 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

相關問題