Due download, due proxy, un comando curl
Usa i limiti di trasferimento di curl per assegnare proxy e file di output separati senza ambiguità nella riga di comando.
Mettere due URL dopo una sola opzione --proxy li invia entrambi attraverso lo stesso proxy. Quando ogni download richiede il proprio percorso, dai a curl un limite di trasferimento:
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/
I due indirizzi proxy sono segnaposto; scegli endpoint HTTP dal tuo servizio o dall’elenco di proxy HTTP. L’opzione --next avvia un altro trasferimento con un nuovo insieme di opzioni locali. Indica esplicitamente il secondo proxy. Un’opzione fornita prima del limite potrebbe dover essere fornita di nuovo dopo.
Questo è un esempio sequenziale. Rende semplice controllare l’associazione tra destinazione, file di output e proxy. curl supporta anche trasferimenti paralleli, ma il parallelismo cambia la pianificazione; non sceglie automaticamente un proxy per ogni URL.
Attenzione ai file di testo con coppie
Una riga contenente proxy-address destination-url è il formato della tua applicazione. curl non deduce il significato di queste colonne da testo arbitrario. Un ciclo shell, una configurazione curl generata o un altro piccolo dispatcher deve trasformare ogni record in opzioni esplicite.
Mantieni gli argomenti come argomenti. Costruire un comando concatenando URL non attendibili può permettere a spazi o caratteri della shell di cambiarne il significato. Per lavori ripetuti, la sintassi documentata del file di configurazione curl è più facile da esaminare di una lunga stringa assemblata a mano.
Registra separatamente il risultato di ogni trasferimento. Un primo download riuscito non dice nulla sul percorso o sulla risposta del secondo. Mantieni timeout e gestione degli errori associati al trasferimento che ne ha bisogno e controlla il limite quando un’impostazione sembra scomparsa.