Вы должны использовать HTTP-заголовок Range:
Диапазон. Запросить только часть объекта.
Байты пронумерованы от 0. Диапазон:
байт = 500-999
Т.е.. Если вы хотите скачать 1000 файлов в 4 частях, вы начнете 4 загрузки:
- 0-2499
- 2500-4999
- 5000-7499
- 7500-9999
А затем просто объедините данные из ответов.
Для проверки размера файла вы можете использовать метод HEAD:
HEAD Запрашивает идентичный ответ
к тому, что будет соответствовать
ПОЛУЧИТЬ запрос, но без ответа
тело. Это полезно для получения
метаинформация написана в ответ
заголовки, без необходимости транспортировки
весь контент.