Wget - рекурсивная загрузка большого количества файлов занимает много времени - PullRequest
0 голосов
/ 27 сентября 2019

В настоящее время я пытаюсь загрузить большой набор данных (200k + больших изображений). Все это хранится в облаке Google.Авторы предоставляют скрипт wget для его загрузки:

wget -r -N -c -np --user username --ask-password https://alpha.physionet.org/files/mimic-cxr/2.0.0/

Сейчас он загружается и т. Д., Но прошло уже 2 дня, и он все еще идет, и я не знаю, сколько времени это займет.AFAIK его загрузка каждого файла в отдельности.есть ли способ загрузить его параллельно?

РЕДАКТИРОВАТЬ: У меня нет доступа sudo к машине, выполняющей загрузку.У меня просто есть доступ пользователя.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Если вы не знаете URL-адреса, тогда используйте старый добрый httrack копир веб-сайта для параллельной загрузки файлов:

httrack -v -w https://user:password@example.com/

По умолчанию используется 8 параллельных подключений, но вы можете использовать cN возможность увеличить его.

Если файлы большого размера, вы можете использовать aria2c, это загрузит один файл с несколькими потоками:

aria2c -x 16 url

Вы можете узнать, являются ли файлыхранить в GCS, если это так, то вы можете просто использовать

gsutil -m <src> <destination>

Это позволит загружать файлы в многопоточном режиме

0 голосов
/ 27 сентября 2019

wget - отличный инструмент, но он не предназначен для эффективной загрузки файлов размером 200К.

Вы можете либо дождаться его завершения, либо найти другой инструмент, который выполняет параллельные загрузки, при условии, что у вас есть быстрое подключение к Интернету для поддержки параллельных загрузок, что может сократить время вдвое wget.

Поскольку источником является веб-сервер HTTPS, для ускорения этого процесса мало что можно сделать, кроме загрузки двух-четырех файлов параллельно.В зависимости от скорости вашего интернета, расстояния до исходного сервера вы можете не добиться каких-либо улучшений при параллельной загрузке.

Примечание. Вы не указываете, на что вы загружаете.Если местом назначения является виртуальная машина Compute Engine, а вы выбрали маленькую (f1-micro), у вас могут быть ограниченные ресурсы.Для любой высокоскоростной передачи данных выберите как минимум размер экземпляра n1.

...