如何使用带范围标头选项的Python脚本从驱动器API下载大文件的一部分
基于 我已经创建了一个函数,但无法使其工作。 如何将范围选项传递给标题如何使用带范围标头选项的Python脚本从驱动器API下载大文件的一部分,python,download,http-headers,google-drive-api,partial,Python,Download,Http Headers,Google Drive Api,Partial,基于 我已经创建了一个函数,但无法使其工作。 如何将范围选项传递给标题 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
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
我得到:
发生错误:{'status':'206','alternate protocol':
'443:quic,p=0.02','content-length':'300',
“访问控制允许标头”:“接受,接受语言,
授权、缓存控制、内容处置、内容编码、,
内容语言、内容长度、Content-MD5、内容范围、,
内容类型、日期、GData版本、主机、如果匹配、如果自,
如果不匹配,如果未修改自,则为Origin,OriginToken,Pragma,
范围、段塞、传输编码、X-ClientDetails、X-GData-Client、,
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-Use-HTTP-Status-Code-Override,X-YouTube-VVT,X-YouTube-Page-CL,
X-YouTube-Page-Timestamp“内容处置”:
'附件;filename=“1981-0930公共计划,第7天,第1部分,
维舒迪脉轮,
NYC.mpg“filename*=UTF-8\'1981-0930%20Public%20Program%2C%20Day%207%2C%20Part%201%2C%20Vishuddhi%20Chakra%2C%20NYC.mpg”,
“访问控制允许凭据”:“false”,“expires”:“Sun,12月28日”
2014 09:09:35 GMT,“服务器”:UploadServer(“于2014年12月19日构建
10:24:45(1419013485)”,“内容范围”:“字节0-299/1885163442”,
“缓存控制”:“私有,最大年龄=0”,“日期”:“2014年12月28日,星期日”
09:09:35 GMT“,”访问控制允许原点“:“*”,
“访问控制允许方法”:“获取,选项”,“内容类型”:
“视频/mpeg”}
谢谢代码
resp, content = service._http.request(download_url, headers={'Range': 'bytes=0-299'})
是正确的那么你观察到了什么问题…?我得到了206(见我的编辑),谢谢我发现了一个错误,206是可以的:)所以如果resp.status==206:正确:206表示“部分内容”-正是你要求的!