2017-12-14 3 views
2

Ich muss Dateien von einer FTP-Site löschen, nachdem ich sie in R verarbeitet habe (Parsing Content). Aber nichts, was ich versuche, scheint zu funktionieren.Löschen von Dateien aus SFTP mit R Studio

das ist, was ich versuche, und Variationen von.

library(RCurl) 

curlPerform(url="sftp://user:[email protected]/folder/", quote="DELE filename.pdf") 

curlPerform(url="ftp://xxx.xxx.xxx.xxx/", quote="DELE file.txt", userpwd = "user:pass") 

Fehler ist Fehler in Funktion (Typ, msg, asError = TRUE): Unbekannt SFTP Befehl

Wenn ich den folgenden Code ausführen, erhalte ich eine schöne Liste aller Dateien (die verwendet wird, um sie herunterzuladen). Also ich weiß, dass die Verbindung gerade toll funktioniert, und das Parsen von den heruntergeladenen Dateien funktioniert super!

curlPerform(url="sftp://user:[email protected]/folder/") 

Danke, Siobhan

+2

Wie funktioniert es nicht Arbeit? Fehlermeldung? Keine Fehlermeldung, aber Datei nicht gelöscht? – Spacedman

+0

Ist diese 'curlPerform' aus dem' RCurl' Paket? Sie sollten hier immer die Pakete angeben, die Sie in Beispielen verwenden. – Spacedman

+0

Ah, Entschuldigung, ich bin neu dazu! Ja, das ist RCurl. Der Fehler im bekommen ist; Fehler in der Funktion (type, msg, asError = TRUE): Unbekannter SFTP-Befehl – Siobhan

Antwort

1

über sftp zu löschen, verwenden rm statt DELE - was wie ein ftp eher als ein sftp Befehl aussieht.

Dann stellen Sie sicher, dass Sie den vollständigen Dateipfad haben. Dies funktioniert für mich:

curlPerform(
url="sftp://[email protected]/", 
.opts=list(
    ssh.public.keyfile=pub, 
    ssh.private.keyfile=pri), 
    verbose=TRUE, 
    quote="rm /home/me/test/test.txt") 

Hinweis Ich habe meine Zugangsdaten in einigen Schlüsseldateien eingeben, damit ich das Passwort nicht im Klartext im Code setzen.

Ich bin nicht überzeugt, dass dies der beste Weg ist, es zu tun, da ich es den Inhalt der URL Druck nicht aufhören kann ... Es gibt vielleicht eine Option sein ...

+0

Andrie de Vries und Gábor Csárdi haben ein neues Paket 'secret' zum Speichern von Anmeldedaten (userR! 2017:" Kannst du ein Geheimnis? ") Vorgestellt: https://channel9.msdn.com/Events/useR -international-R-User-Konferenzen/userR-International-R-User-2017-Konferenz/Can-you-keep-a-secret –

+0

Danke Spacedman. Das bringt mich so nah, dass ich Erfolg riechen kann! Gibt es das überhaupt, ohne Keyfiles zu benutzen? Da dies eine interne App und eine interne FTP-Site ist, sollten wir mit den Details im Klartext einverstanden sein ... oh und ich habe keine Ahnung, wie man die Keyfiles auf redhat erstellt !! – Siobhan

+0

Der Code, den ich jetzt habe, ist dies und ich bekomme keine solchen Datei- oder Verzeichnisfehler, was ein gewaltiger Fortschritt ist! Ich habe mit der Struktur des Dateinamens usw. vergebens gespielt! für (d in pdfs_to_run) { curlPerform ( url = "sftp: // usr: pwd @ SFTP /", quote = paste0 ("rm/Ordnername /" Dateiname [d]) ) } – Siobhan