Poner dos URL después de una sola opción --proxy hace que ambas pasen por el mismo proxy. Cuando cada descarga necesita su propia ruta, dale a curl un límite de transferencia:

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/

Las dos direcciones proxy son marcadores; elige endpoints HTTP de tu servicio o de la lista de proxies HTTP. La opción --next inicia otra transferencia con un conjunto nuevo de opciones locales. Especifica el segundo proxy. Una opción dada antes del límite quizá deba darse otra vez después.

Este es un ejemplo secuencial. Facilita revisar la correspondencia entre destino, archivo de salida y proxy. curl también admite transferencias paralelas, pero el paralelismo cambia la planificación; no elige automáticamente un proxy para cada URL.

Cuidado con un archivo de texto de pares

Una línea que contiene proxy-address destination-url es el formato de tu aplicación. curl no deduce el significado de esas columnas a partir de texto arbitrario. Un bucle de shell, una configuración de curl generada u otro pequeño distribuidor debe convertir cada registro en opciones explícitas.

Conserva los argumentos como argumentos. Construir un comando concatenando URL no confiables puede permitir que espacios o caracteres del shell cambien su significado. Para trabajos repetidos, la sintaxis documentada de archivos de configuración de curl es más fácil de revisar que una cadena larga ensamblada a mano.

Registra por separado el resultado de cada transferencia. Una primera descarga correcta no dice nada sobre la ruta o la respuesta de la segunda. Mantén los tiempos de espera y el manejo de errores asociados a la transferencia que los necesita, y revisa el límite cuando una opción parezca haber desaparecido.

Artículos relacionados