Placer deux URL après une seule option --proxy les fait passer par le même proxy. Lorsque chaque téléchargement doit suivre sa propre route, donnez à curl une limite de transfert :

curl --proxy http://203.0.113.10:8080 \
  --output first.html https://example.com/ \
  --next \
  --proxy http://203.0.113.20:8080 \
  --output second.html https://example.org/

Les deux adresses de proxy sont des exemples ; choisissez les points de terminaison HTTP de votre service ou de la liste de proxys HTTP. L’option --next démarre un autre transfert avec un nouvel ensemble d’options locales. Indiquez explicitement le second proxy. Une option fournie avant la limite devra peut-être être répétée après celle-ci.

Il s’agit d’un exemple séquentiel. Il rend facile l’inspection de l’association entre destination, fichier de sortie et proxy. curl prend aussi en charge les transferts parallèles, mais le parallélisme modifie l’ordonnancement ; il ne choisit pas automatiquement un proxy pour chaque URL.

Prudence avec un fichier texte de paires

Une ligne contenant proxy-address destination-url est le format de votre application. curl ne déduit pas le sens de ces colonnes à partir d’un texte arbitraire. Une boucle shell, une configuration curl générée ou un autre petit répartiteur doit transformer chaque enregistrement en options explicites.

Conservez les arguments comme des arguments. Construire une commande en concaténant des URL non fiables peut laisser des espaces ou des caractères shell en modifier le sens. Pour les tâches répétées, la syntaxe de fichier de configuration documentée de curl est plus facile à examiner qu’une longue chaîne assemblée à la main.

Consignez séparément le résultat de chaque transfert. La réussite du premier téléchargement ne dit rien de la route ou de la réponse du second. Gardez les délais d’attente et la gestion des erreurs attachés au transfert qui en a besoin, et inspectez la limite lorsqu’une option semble avoir disparu.

Articles similaires