Я использую R для написания программы и выполнения некоторых анализов. Данные собираются внешним поставщиком с помощью MongoDB в формате JSON. Они предоставляют его мне через URI на порту 443, который они хотят, чтобы я запрашивал, используя cURL. У них есть аутентификация и самоподписанный SSL.
Я могу аутентифицировать и сбрасывать данные через curl в Windows, однако для создания долгосрочного устойчивого решения все это нужно делать в R.
Поставщик говорит, что RCurl «должен» работать, но они не предоставляют никакой поддержки, и им в основном просто не нравится идея использования RMongo, и они не комментируют ее (но если бы мы могли заставить ее работать, это было бы здорово, в мое мнение).
У меня загружены следующие пакеты — ggplot2 — DBI — rjson — RJSONIO (иногда я не загружаю этот, если использую rjson, или наоборот) — RMongo — rstudio — RCurl
Самоподписанный сертификат вызывал проблемы даже с curl, но они были решены путем редактирования настроек в Ruby, а затем запуска командной оболочки с Ruby и использования curl таким образом. Я не уверен, связаны ли проблемы в R.
При попытке пройти маршрут RCurl я получаю такие команды/ошибки:
x <- getURL("https://xxx.xx.xxx.xxx:443/db/_authenticate", userpwd="xxxx:xxxxx") }{Error in function (type, msg, asError = TRUE) : couldn't connect to host
и при попытке использовать RMongo я еще более невежествен...
> mongo <- mongoDbConnect("xxx.xx.xxx.xxx")
имя пользователя = «xxxx» пароль = «хххххххххххх» аутентифицировано ‹- dbAuthenticate (монго, имя пользователя, пароль) 25 февраля 2013 г. 16:00:09 com.mongodb.DBTCPConnector fetchMaxBsonObjectSize ПРЕДУПРЕЖДЕНИЕ: Исключение, определяющее размер maxBSON с использованием0 java.io.IOException: не удалось подключиться к [/127.0.0.1:27017] bc:java.net.ConnectException: в соединении отказано: подключитесь к com.mongodb.DBPort.open(DBPort.java:224) к com.mongodb.DBPort. go(DBPort.java:101) в com.mongodb.DBPort.go(DBPort.java:82) в com.mongodb.DBPort.findOne(DBPort.java:142) в com.mongodb.DBPort.runCommand(DBPort.java :151) в com.mongodb.DBTCPConnector.fetchMaxBsonObjectSize(DBTCPConnector.java:429) в com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:416) в com.mongodb.DBTCPConnector.call(DBTCPConnector.java:193) в com .mongodb.DBApiLayer$MyCollection._find(DBApiLayer.java:303) в com.mongodb.DB.command(DB.java:159) в com.mongodb.DB.command(DB.java:14) 4) в com.mongodb.DB._doauth(DB.java:503) в com.mongodb.DB.authenticate(DB.java:440) в rmongo.RMongo.dbAuthenticate(RMongo.scala:24)
Error in .jcall(rmongo.object@javaMongo, "Z", "dbAuthenticate", username, :
com.mongodb.MongoException$Network: can't call something
Feb 25, 2013 4:00:10 PM com.mongodb.DBPortPool gotError
WARNING: emptying DBPortPool to 127.0.0.1:27017 b/c of error
java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect
at com.mongodb.DBPort._open(DBPort.java:224)
at com.mongodb.DBPort.go(DBPort.java:101)
at com.mongodb.DBPort.go(DBPort.java:82)
at com.mongodb.DBPort.call(DBPort.java:72)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:202)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:303)
at com.mongodb.DB.command(DB.java:159)
at com.mongodb.DB.command(DB.java:144)
at com.mongodb.DB._doauth(DB.java:503)
at com.mongodb.DB.authenticate(DB.java:440)
at rmongo.RMongo.dbAuthenticate(RMongo.scala:24)
любая помощь будет принята с благодарностью!