c# - 通过 Rest API 从 Google Drive 下载部分内容需要太长时间
问题描述
我正在尝试从 Google Drive 下载文件并显示进度。
根据官方文档,从 Google Drive 下载文件的请求接受了Range
header,但并没有太大区别。我正在尝试下载一个~40 MB
文件,无论我下载或的块100 B
,每个请求总是需要大约 30 秒才能完成,无论是在 iOS 上还是在 Postman 上。对带有完成的较小文件的请求,因此访问 API 本身不是问题。65 KiB
20 MiB
~300 ms
我与邮递员发送的请求是
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
如果我下载了整个 ( ) 文件,它所花费的时间几乎一样长。
我还能做些什么来以合理的方式报告进度来接收部分下载?每个块花费与整个下载相同的时间使范围标头有点无用。
解决方案
推荐阅读
- sql - SQL 查询根据特定列值以及插入的降序日期过滤记录
- c# - 在单个按钮中逐行将多个 txtbox 值添加到列数据表?C# SQL
- azure-active-directory - 无法在 AAD 中邀请用户作为访客用户
- rest - Angular5 和 java vert.x 的 Http (REST) 失败
- python - 在 Pandas 中使用堆栈
- azure - 有没有办法将团队项目及其工作项从 VSTS (Azure DevOps) 实例导出到本地 TFS 2018 服务器实例?
- python - 在 Turbogears 中同时使用 Kajiki 和 Jinja 不起作用
- java - 将私钥存储在 Android Keystore 中
- powershell - 过滤一串随机的逗号和空格
- internationalization - 试图从全局命名空间加载类“IntlTimeZone”