Я хотел бы определить указанные 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?