2015-11-17 10 views
7

Ich schrieb einen einfachen Code, um eine Datei auf einen SFTP-Server in Python hochzuladen. Ich benutze Python 2.7Datei über SFTP mit Python hochladen

import pysftp 

srv = pysftp.Connection(host="www.destination.com", username="root", 
password="password",log="./temp/pysftp.log") 

srv.cd('public') #chdir to public 
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/ 

# Closes the connection 
srv.close() 

Die Datei wurde nicht auf dem Server angezeigt. Es wurde jedoch keine Fehlermeldung angezeigt. Was ist falsch an dem Code?

EDIT: Ich habe die Protokollierung aktiviert. Ich habe festgestellt, dass die Datei in den Stammordner und nicht in den öffentlichen Ordner hochgeladen wird. Scheint wie srv.cd('public') hat nicht funktioniert.

+1

Es ist ein bisschen schwer von Ihrer Beschreibung zu erzählen. Setze 'log = '/ tmp/pysftp.log' beim Erstellen der Verbindung und untersuche die Protokolldatei. –

Antwort

10

Ich fand die Antwort auf meine eigene Frage.

import pysftp 

srv = pysftp.Connection(host="www.destination.com", username="root", 
password="password",log="./temp/pysftp.log") 

with srv.cd('public'): #chdir to public 
    srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/ 

# Closes the connection 
srv.close() 

Setzen Sie die srv.put innen mit srv.cd

Verwandte Themen