我正在尝试从Google云端硬盘下载文件并显示进度。
根据official documentation,从Google云端硬盘下载文件的请求接受了Range
标头,但没有太大区别。我正在尝试下载~40 MB
文件,无论我是否下载100 B
,65 KiB
或20 MiB
的块,每个请求将始终需要大约30秒才能完成,两者在iOS和Postman上。要求以~300 ms
结尾的较小文件,因此访问API本身不是问题。
我与邮递员发送的请求是
GET /drive/v3/files/<file id>?alt=media HTTP/1.1
Host: www.googleapis.com
Range: bytes=0-100
Cache-Control: no-cache
Authorization: Bearer <My Token>
Postman-Token: ef19a353-98fe-4e7b-a892-a5a1a178d8a6
(来自我们应用程序的请求应该非常相似。)我认为它应该迅速返回,但事实并非如此。与下载整个(~40 MB
)文件所需的时间差不多。
我还有其他方法可以接收部分下载内容吗?我可以以合理的方式报告进度吗?每个块在整个下载过程中花费的时间相同,从而使范围标头变得毫无用处。