2017-11-27 4 views
1

herunterladen Ich versuche, R am Arbeitsplatz zu implementieren und sparen Sie ein wenig Zeit von all den Daten, die wir tun.Versuchen, Dateien von SFTP mit R-Programmierung

Viele Dateien, die wir erhalten, werden über SFTP an uns gesendet, da sie vertrauliche Informationen enthalten.

Ich habe mich auf StackOverflow & Google umgesehen, aber nichts scheint für mich zu arbeiten. Ich habe versucht, die RCurl-Bibliothek aus einem Beispiel zu verwenden, das ich online gefunden habe, aber es erlaubt mir nicht, den Port (22) als Teil der Login-Daten einzubeziehen.

library(RCurl) 
protocol <- "sftp" 
server <- "hostname" 
userpwd <- "user:password" 
tsfrFilename <- "Reports/Excelfile.xlsx" 
ouptFilename <- "~/Test.xlsx" 

url <- paste0(protocol, "://", server, tsfrFilename) 
data <- getURL(url = url, userpwd=userpwd) 

ich am Ende den Fehlercode bekommen

Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : 
embedded nul in string: 

Jede Hilfe wäre sehr, da dies erkannt werden wird uns viel Zeit sparen!

Danke,

Shan

Antwort

0

Sieht aus wie eine ähnliche Situation hier: Using R to download SAS file from ftp-server

Ich bin kein Experte in r, aber es sieht es aus wie getBinaryUrl() arbeitete statt getURL() in dem gegebenen Beispiel.

Hoffnung, die M

+0

Dank Mark, die jetzt funktioniert hilft! –

0

Beachten Sie, dass es zwei Pakete sind, RCurl und rcurl. Für RCurl, benutzte ich Keyfiles via SFTP erfolgreich zu verbinden:

opts <- list(
    ssh.public.keyfile = pubkey, # file name 
    ssh.private.keyfile = privatekey, # filename 
    keypasswd <- keypasswd # optional password 
) 
RCurl::getURL(url=uri, .opts = opts, curl = RCurl::getCurlHandle()) 

Damit dies funktioniert, müssen Sie zwei der Keyfiles zum Beispiel erstellen über Kitt oder ähnliches.

Verwandte Themen