Я пытаюсь загрузить файлы с Google Диска и показать прогресс.
Согласно официальной документации , запрос на загрузку файла с 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
) файл.
Могу ли я еще что-то сделать, чтобы получать частичные загрузки таким образом, чтобы я мог разумно сообщить о ходе работы?Каждый блок, занимающий одно и то же время, что и вся загрузка, делает заголовок диапазона немного бесполезным.