A biblioteca padrão Downloads do Julia usa libcurl. Forneça o ambiente de proxy antes de iniciar o processo que realiza o 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

Um exemplo fetch.jl pode usar a API comum do Downloads:

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

A variável https_proxy escolhe a rota até um destino HTTPS; o valor http:// indica um proxy HTTP comum. Para downloads autorizados a usar endpoints públicos, a lista de proxies HTTP oferece candidatos para esse valor. Não altere esse valor para https:// a menos que o próprio ouvinte do proxy suporte TLS.

libcurl aceita http_proxy apenas em minúsculas. As demais variáveis de proxy por protocolo também têm formas em maiúsculas. A convenção de contorno é no_proxy ou NO_PROXY, com entradas separadas por vírgulas; http_no_proxy não é a variável geral de contorno documentada.

Um processo do Julia iniciado por uma IDE ou por um serviço em segundo plano herda o ambiente desse lançador. Uma variável exportada depois em outro terminal não o reconfigura.

Para diagnóstico, Downloads.download aceita verbose=true, e seu retorno de depuração pode receber eventos de transporte detalhados. Revise essa saída localmente e remova segredos antes de compartilhá-la.

Um pacote que usa outra implementação de HTTP precisa de sua própria revisão de configuração. Uma chamada bem-sucedida ao Downloads estabelece o comportamento daquela solicitação, não de toda operação de rede escrita em Julia.

Artigos relacionados