对于通过 export-links 下载的文件,范围标头似乎无法正常工作。这些是请求标头,响应标头和内容的顶部部分:
GET /feeds/download/documents/export/Export?id=1dU-juYN25FMXdp6Ju62KAIT_0tuuZAPEgZkj-aT6kPQ&exportFormat=docx HTTP/1.1
Host: docs.google.com
Range: bytes=0-499
Content-length: 0
Authorization: Bearer ya29.1.AADtN_VJ_CVLUz30Ke0zeNnhBk19y3UPo-SAnMLK5WMXUEo9a6RiTgt_ghBZRw
HTTP/1.1 200 OK
Alternate-protocol: 443:quic
X-xss-protection: 1; mode=block
X-robots-tag: noarchive
Content-disposition: attachment;filename="EventDrivenIOWebApplicationServerAnalysis.docx"
Set-cookie: NID=67=AUoLJM4MRuah2izbPY5Lq_8-4bXlAlVH6N0dren6TAMFvZZo5R82VCXQvBOu9X2eIWdYf2_OeTwrq-3WH6q5uwA99CXcBDy1urLzr6fGeJUE5Pxy6EWVDG3HZLFjAz1H;Domain=.google.com;Path=/;Expires=Thu, 04-Sep-2014 05:36:12 GMT;HttpOnly
Expires: Wed, 05 Mar 2014 05:36:12 GMT
X-google-cache-control: remote-fetch
Server: GSE
Via: HTTP/1.1 GWA
Cache-control: private, max-age=0
Date: Wed, 05 Mar 2014 05:36:12 GMT
P3p: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8
X-frame-options: SAMEORIGIN
X-content-type-options: nosniff
Content-location: https://docs.google.com/feeds/download/documents/export/Export?id=1dU-juYN25FMXdp6Ju62KAIT_0tuuZAPEgZkj-aT6kPQ&exportFormat=docx
PK¬dDdocProps/app.xmlÁ
Â0D¿À¹kªI[Ñ«õm
´»!»þ½A={Þð±í}Ô
2GÂZÏgVBľ֧ãnºÒÅap!Ôú¬ÛfbdÀªk}IkcØ_`t<+é(NJ̽¡®¶ä¯# EU-
Ü0@¦P¿ëü+
ä_ûø||¤âkì&¥!z'åd³'êP¥ÃÖük¾§'PKoð¬PK¬dDdocProps/core.xmlmÝJÄ0FÀw¹og« RÚ.*Â*z±ÌɸmßÞlÑ*ì^ð9Ì|Íz´í1&í]Ë«rÅ:év}Ë_o+Î §ñ[>aâë>âSô#iL,\ªehù(ÔIîÐTfÂåðÃG+(cAÈOÑ#¯V`$à ,Âbä?J%eøf( hТ£UYÁKm:90'ÿH«i
xý
zLza(ÍûWðöp¿O-´;T%w5i2ØÝìóì:êü²;xd¯øÎ6!-åÒÙcîm0SÒ©T^
,ó
UÝ}PKÙ)å.¶PK¬dDword/footer1.xmlTËnÛ0üþÀ»-'¢"EöbBÓ~CRk¾°¤¤øï»Ô+[Lkfgf¹^ûæöI«¤à¥59¹ÚîH"³\*'¿}Û|!Ôpª¬99On÷nº¬ ØøL³Ô!¸,M=«¦~k0H4
øUª)·aV;ä£T2ÓëÝî3mlN0Ùh±Ñõ¶QÙ²LǤ5¹ä`Y£ }b
BaÖøZ:?¹éKݬ'ö£K´ZMu[ÆvøMh5u¸Ë÷rv¼Ú`´kZx9u¢©4³MÜѽÅìqh½ÕóEgáÕFê(Âùmôy¾Ô;¹j¨
Ìy«)É@]â ,; ~GMKçeæÕªu^8qI+ ìñ÷í.ÿ^äd7¾Èý,àð-têº(i£Â¦+ '!Üñ°¸¥QMÒ >J#üï$·Ý5¬ZPQ4j¨zpá%ü6 «:D0Û(Ú)5\B8G~Ƽ{ñõû}|IJ#?Qÿ4Þ¡¡èßç6þ{׳JGfuCxý_PKx÷OÛ PK¬dDword/numbering.xmlíXYnÛ0=Aï`èg¬Å²¬ AAQéh¶pÝôô¥ÖDRÐ?å|3óä£G#ßÜþælv$ ¨ãÏ=gF)ûÄùõüx;3¥H$Î+QÎíæÓÍi-r¾%`üfB¨5ÇsÐ:[»®ÂÂËcÜIàH)ì]à%Ï®°äÒtKÕ¯nàySÓÈÄÉA¬k+N1H%wºYËÝbRMÉ[<Hs"tÑÂ̤P©Ëfäø¯M9küNÙl) 9gΪD' i¥úP[FßqE1f ÝÍJ8¢¢¥)nG¨Í=7¹ëC+©Þ6òvYHez¢[@ð:\:ã<ßÇgtÔ-î1(C{!Ï¡Àº!`ç00_Hzĵ9ݺÎ=¦¢= îl̯mõ÷Ï:³¯©)¥;2c¢fH¯DLÁm°#b»©ÊÅ#oÁ`Ê«L&òünmýyÃ
ÊÈNWpöÔØ
根据文档(https://developers.google.com/drive/web/manage-downloads的“部分下载”部分),我应该只返回500个字节(内容)。
范围标题适用于正常下载。我会在回复中得到这样的内容:
Content-range: bytes 0-499/11406698
表示已满足的范围和内容长度。
答案 0 :(得分:0)
根据API,如果您的范围完全有效,则获得500字节,如果您的范围包含EOF,则为500;如果您的范围超出范围,则为0。
另请注意,包含总字节数的标头和导出文档的部分下载使用都不是正式文档化API的一部分,因此不应依赖它们。随时更改/停止/删除。
问题是您一次依赖两个未记录的功能 - 答案是不要导出的文档应该总共下载。
附加信息的唯一合理用途是估算完成下载的时间,因为在下载完成之前,您通常不应开始处理文件。一个例外是将下载的文件视为流,在这种情况下,您将无法执行seek()
等操作。
可能的解决方法(除了完全下载文件之外)是将文档上传,然后使用部分下载来生成文件,但我怀疑你必须在文件保存时这样做。
或者提出要求此功能的功能请求,并保持手指交叉。
答案 1 :(得分:0)
您是否可以在appengine上托管一个小代理,“下载”完整的导出文件,然后将其部分下载到您的浏览器中。