La libreria standard Downloads di Julia usa libcurl. Fornite l'ambiente proxy prima di avviare il processo che esegue il download:

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 esempio fetch.jl può usare la normale API Downloads:

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

La variabile https_proxy sceglie il percorso verso una destinazione HTTPS; il valore http:// indica un proxy HTTP ordinario. Per i download autorizzati a usare endpoint pubblici, l'elenco di proxy HTTP offre candidati per quel valore. Non cambiate quel valore in https:// a meno che l'ascoltatore del proxy stesso non supporti TLS.

libcurl accetta http_proxy solo in minuscolo. Anche le altre variabili proxy di protocollo hanno forme in maiuscolo. La sua convenzione di bypass è no_proxy o NO_PROXY, con voci separate da virgole; http_no_proxy non è la variabile generale di bypass documentata.

Un processo Julia avviato da un IDE o da un servizio in background eredita l'ambiente di quel lanciatore. Una variabile esportata più tardi in un altro terminale non lo riconfigura.

Per la diagnosi, Downloads.download accetta verbose=true, e il suo callback di debug può ricevere eventi di trasporto dettagliati. Esaminate quell'output localmente e rimuovete i segreti prima di condividerlo.

Un pacchetto che usa un'altra implementazione HTTP richiede una propria revisione della configurazione. Una chiamata Downloads riuscita stabilisce il comportamento di quella richiesta, non di ogni operazione di rete scritta in Julia.

Articoli correlati