Похоже, что вы действительно хотите, это приложение, которое может загрузить файл по частям из разных интерфейсов и объединить их в конце. Например, если вы знали, что размер вашего файла составляет 100 МБ, и вы хотели получить фрагменты размером примерно 10 МБ, вам нужно сделать следующее:
1. start a download of bytes 0..10000000 on eth0, saving to filename.part1 2. start a download of bytes 10000001..20000000 on eth0:0, saving to `filename.part2 3. start a download of bytes 20000001..30000000 on eth0:1, saving to filename.part3 ... N-1. wait for all downloads to complete N. join all filename.part* together to get filename.complete
Я знаю, wget
может возобновить частично загруженный файл. Я почти уверен, что это работает, читая до конца существующего файла и затем запрашивая файл, начиная со следующего байта, с сервера.
Похоже, curl
поддерживает частичные загрузки, как это с помощью --range <byterange>
опции. Таким образом, вы можете написать приведенные выше шаги следующим образом:
1. curl --interface eth0 --range 0,10000000 http://some.server.com/bigfile -o bigfile.part1 2. curl --interface eth0:0 --range 10000001,20000000 http://some.server.com/bigfile -o bigfile.part2 ... N. cat bigfile.part* > bigfile
Предостережения: это не всегда работает; если на сервере HTTP / 1.1 не включена функция частичной загрузки, вы получите полный файл при каждом вызове. Смотрите man curl
подробности о --range
опции.
Редактировать: фиксированные байтовые диапазоны в примерах