Переменные окружения прокси для загрузок Julia
Задайте совместимые с libcurl переменные прокси до запуска Julia и диагностируйте запрос Downloads, а не предполагайте, что каждый пакет использует один и тот же backend.
Стандартная библиотека 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.