У меня есть сценарий использования, когда большой удаленный файл необходимо загружать по частям, используя несколько потоков. Каждый поток должен работать одновременно (параллельно), захватывая определенную часть файла. Ожидается, что части будут объединены в один (оригинальный) файл, как только все части будут успешно загружены.
Возможно, использование библиотеки запросов может помочь, но тогда я не уверен, каким образом я бы многопоточил эторешение, которое объединяет куски вместе.
url = 'https://url.com/file.iso'
headers = {"Range": "bytes=0-1000000"} # first megabyte
r = get(url, headers=headers)
Я также думал об использовании curl, где Python будет координировать загрузки, но я не уверен, что это правильный путь. Это просто кажется слишком сложным и отклоняется от ванильного решения Python. Примерно так:
curl --range 200000000-399999999 -o file.iso.part2
Может кто-нибудь объяснить, как бы вы поступили примерно так? Или опубликовать пример кода чего-то, что работает в Python 3? Я обычно нахожу связанные с Python ответы довольно легко, но решение этой проблемы, похоже, ускользает от меня.