I wrote a simple code to upload a file to a SFTP server in Python. I am using Python 2.7.
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:UsersXXXDropboxtest.txt') #upload file to nodejs/ # Closes the connection srv.close()
The file did not appear on the server. However, no error message appeared. What is wrong with the code?
I have enabled logging. I discovered that the file is uploaded to the root folder and not under public
folder. Seems like srv.cd('public')
did not work.
Advertisement
Answer
I found the answer to my own question.
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:UsersXXXDropboxtest.txt') #upload file to nodejs/ # Closes the connection srv.close()
Put the srv.put
inside with srv.cd