La biblioteca estándar Downloads de Julia usa libcurl. Proporcione el entorno de proxy antes de iniciar el proceso que realiza la descarga:

export http_proxy='http://proxy.example:8080'
export https_proxy='http://proxy.example:8080'
export no_proxy='localhost,127.0.0.1'
julia fetch.jl

Un ejemplo fetch.jl puede usar la API habitual de Downloads:

using Downloads
Downloads.download(
    "https://downloads.example/data.csv",
    "data.csv";
    timeout = 30,
)

La variable https_proxy elige la ruta hacia un destino HTTPS; el valor http:// especifica un proxy HTTP normal. Para las descargas que pueden usar puntos de conexión públicos, la lista de proxies HTTP ofrece candidatos para ese valor. No cambie ese valor a https:// salvo que el propio escucha del proxy admita TLS.

libcurl solo acepta http_proxy en minúsculas. Las demás variables de proxy por protocolo también tienen formas en mayúsculas. Su convención de omisión es no_proxy o NO_PROXY, con entradas separadas por comas; http_no_proxy no es la variable general de omisión documentada.

Un proceso de Julia iniciado por un IDE o un servicio en segundo plano hereda el entorno de ese lanzador. Una variable exportada después en otra terminal no lo reconfigura.

Para el diagnóstico, Downloads.download acepta verbose=true, y su función de devolución de depuración puede recibir eventos de transporte detallados. Revise esa salida localmente y elimine los secretos antes de compartirla.

Un paquete que usa otra implementación de HTTP necesita su propia revisión de configuración. Una llamada correcta a Downloads establece el comportamiento de esa solicitud, no el de todas las operaciones de red escritas en Julia.

Artículos relacionados