Как указать параметры заголовка файла download.file для libcurl в R - PullRequest
0 голосов
/ 15 марта 2020

Я хотел бы определить указанные c опции заголовка libcurl для аутентификации https. Мне не удалось найти примеры того, как другие возились с этим конкретным аргументом функции, хотя он поддерживается в исходном коде.

Исходный код из download.file для справки.

Следующий фрагмент кода будет работать и проходить как есть; Это также показывает, что передаваемые параметры заголовка не используются libcurl. Я ожидал бы ошибку «file not found» от libcurl, когда он понимает, что файлы cert и key не существуют.

myheaders <- c(1, 1, "my_cert.pem","my_password","my_key.pem","password")
names(myheaders) <- c("CURLOPT_VERBOSE","CURLOPT_SSL_VERIFYPEER","CURLOPT_SSLCERT","CURLOPT_SSLCERTPASSWD","CURLOPT_SSLKEY","CURLOPT_SSLKEYPASSWD")
tf <- tempfile()
status <- download.file("http://cran.r-project.org/", tf,  method="libcurl", headers=myheaders)
file.size(tf)
unlink(tf)

Существуют другие пакеты R, которые лучше управляют настройкой параметров curl / libcurl (curl, RCurl и httr - лучшие результаты при поиске) при использовании их функций пакета . Однако я считаю, что я вынужден настроить параметры базы R download.file().

Моя конечная цель - позволить другим использовать install.packages() при настройке аутентификации на основе сертификатов. install.packages использует download.file() за кулисами для загрузки файлов пакета. Я хочу избежать использования curl в качестве метода в download.file, потому что в документации говорится, что это блокирующий процесс, тогда как метод libcurl неблокирующий.

Как установить заголовки в R на заставить libcurl работать с соединениями https?

...