Existe-t-il un outil existant, qui peut être utilisé pour télécharger de gros fichiers via une mauvaise connexion?
Je dois télécharger régulièrement un fichier relativement petit: 300 Mo, mais la connexion TCP lente (80-120 Ko / sec) se brise de manière aléatoire après 10-120 secondes. (C'est un réseau de grande entreprise. Nous avons contacté leurs administrateurs (travaillant depuis l'Inde) plusieurs fois, mais ils ne peuvent ou ne veulent rien faire.) Le problème pourrait être avec leurs proxys inverses / équilibreurs de charge.
Jusqu'à présent, j'utilisais une version modifiée de pcurl: https://github.com/brunoborges/pcurl
J'ai changé cette ligne:
curl -s --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &
pour ça:
curl -s --retry 9999 --retry-delay 3 --speed-limit 2048 --speed-time 10 \
--retry-max-time 0 -C - --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &
J'ai dû ajouter --speed-limit 2048 --speed-time 10
car la connexion se bloque généralement pendant des minutes lorsqu'elle échoue.
Mais récemment, même ce script ne peut pas se terminer.
Un problème est qu'il semble ignorer la -C -
partie, donc il ne "continue" pas le segment après une nouvelle tentative. Il semble tronquer le fichier temporaire correspondant et recommencer depuis le début après chaque échec. (Je pense --range
que les -C
options et ne peuvent pas être utilisées ensemble.)
L'autre problème est que ce script télécharge tous les segments en même temps. Il ne peut pas avoir 300 segments, dont seulement 10 sont téléchargés à la fois.
Je pensais écrire un outil de téléchargement en C # dans ce but spécifique, mais s'il existe un outil existant, ou si la commande curl pouvait fonctionner correctement avec différents paramètres, alors je pourrais gagner du temps.
MISE À JOUR 1: Informations supplémentaires: La fonctionnalité de téléchargement parallèle ne doit pas être supprimée, car ils ont une limite de bande passante (80-120 Ko / s, principalement 80) par connexion, donc 10 connexions peuvent entraîner une accélération de 10 fois. Je dois terminer le téléchargement du fichier en 1 heure, car le fichier est généré toutes les heures.
rsync
(qui vous permettra de redémarrer les transferts)?lftp
permet également de redémarrer automatiquement les transmissions.