Стандартная библиотека Downloads в Julia использует libcurl. Задайте окружение прокси до запуска процесса, выполняющего загрузку:

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

Пример fetch.jl может использовать обычный API Downloads:

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

Переменная https_proxy выбирает маршрут к назначению HTTPS; значение http:// задаёт обычный HTTP-прокси. Для загрузок, которым разрешено использовать публичные endpoint'ы, список HTTP-прокси предлагает кандидатов для этого значения. Не меняйте это значение на https://, если сам слушатель прокси не поддерживает TLS.

libcurl принимает http_proxy только в нижнем регистре. У других протокольных переменных прокси тоже есть варианты в верхнем регистре. Его соглашение об обходе — no_proxy или NO_PROXY, с записями через запятую; http_no_proxy не является документированной общей переменной обхода.

Процесс Julia, запущенный IDE или фоновой службой, наследует окружение этого запускающего. Переменная, экспортированная позже в другом терминале, его не перенастраивает.

Для диагностики Downloads.download принимает verbose=true, и его отладочный callback может получать подробные события транспорта. Просмотрите этот вывод локально и удалите секреты перед тем, как делиться им.

Пакет, использующий другую реализацию HTTP, требует собственного обзора конфигурации. Успешный вызов Downloads подтверждает поведение именно этого запроса, а не каждой сетевой операции, написанной на Julia.

Похожие статьи