2014-12-27 116 views
0

基於 https://developers.google.com/drive/web/manage-downloads#partial_download如何從驅動器API使用Python腳本範圍頭選項

我創建了一個功能下載一個大文件的一部分,但我不能得到它的工作。 我應該如何將範圍選項傳遞給標題?

resp, content = service._http.request(download_url, headers={'Range': 'bytes=0-299'}) 


def download_file(service, file_id): 
    drive_file = service.files().get(fileId=file_id).execute() 
    download_url = drive_file.get('downloadUrl') 
    title = drive_file.get('title') 
    originalFilename = drive_file.get('originalFilename') 
    if download_url: 
     resp, content = service._http.request(download_url, headers={'Range': 'bytes=0-299'})  
     if resp.status == 200: 
     file = 'tmp.mp4' 
     with open(file, 'wb') as f: 
      while True: 
       tmp = content.read() 
       if not tmp: 
        break 
       f.write(tmp) 
     return title, file 
    else: 
     print 'An error occurred: %s' % resp 
     return None 
    else: 
    return None 

我得到:

發生錯誤:{ '狀態': '206', '替代協議': '443:QUIC,p值= 0.02',「內容「長度」:'300', '訪問控制允許標題':'接受,接受語言, 授權,緩存控制,內容處理,內容編碼, 內容語言,內容長度, Content-Range, Content-Type,Date,GData-Version,Host,If-Match,If-Modified-Since, If-None-Match,If-Unmodified-Since,Ori gig,OriginToken,Pragma, X-Goog-Encode,X-Goog-PageId, X-GData-Key,X-Goog-AuthUser,X-Goog-PageId, X-Goog-Encode -Response-If-Executable,X-Goog-Correlation-Id, X-Goog-Request-Info,X-Goog-Experiments,x-goog-iam-role, x-goog-iam-authorization-token,X -Goog-Spatula,X-Goog-Upload-Command, X-Goog-Upload-Content-Disposition,X-Goog-Upload-Content-Length, X-Goog-Upload-Content-Type,X-Goog-Upload -File-Name, X-Goog-Upload-Offset,X-Goog-Upload-Protocol,X-Goog-Visitor-Id, X-HTTP-Method-Override,X-JavaScript-User-Agent,X-Pan -Versionid, X-Origin,X-Referer,X-Upload-Content-Length,X-Upload-Content-Type, X-Us e-HTTP-Status-Code-Override,X-YouTube-VVT,X-YouTube-Page-CL, X-YouTube-Page-Timestamp','content-disposition': 'attachment; filename =「1981-0930 Public Program,Day 7,Part 1, Vishuddhi Chakra, NYC.mpg「; filename * = UTF-8 \'1981-0930%20Public%20Program%2C%20Day%207%2C%20Part%201%2C %20Vishuddhi%20Chakra%2C%20NYC.mpg', 'access-control-allow-credentials':'false','expires':'Sun,12 Dec 28th 2014 09:09:35 GMT','server': 'UploadServer(「建立於2014年12月19日 10:24:45(1419013485)」)','content-range':'bytes 0-299/1885163442', 'cache-control':'private,max-age = 0','date':'Sun,2014年12月28日 09:09:35 GMT','access-control-allow-origin':'*',' 'access-control-allow-methods':'GET ,OPTIO NS」, '內涵式': '視頻/ MPEG'}

謝謝

+0

那你觀察什麼問題.. 。? – 2014-12-27 23:04:27

+0

我得到206(見我的編輯),謝謝 – Radek 2014-12-28 09:15:54

+0

我發現了一個錯誤,206是OK :)所以它應該是'如果resp.status == 206:' – Radek 2014-12-28 09:23:41

回答

0

代碼

resp, content = service._http.request(download_url, headers={'Range': 'bytes=0-299'})  

是正確的