web-dev-qa-db-fra.com

Téléchargez le fichier via sftp avec python

J'ai écrit un code simple pour télécharger un fichier sur un serveur sftp en python. J'utilise 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:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/

# Closes the connection
srv.close()

Le fichier n'est pas apparu sur le serveur. Cependant, aucun message d'erreur n'est apparu. Quel est le problème avec le code?

EDIT: J'ai activé la journalisation. J'ai découvert que le fichier est téléchargé dans le dossier racine et non dans le dossier public. Il semble que srv.cd('public') ne fonctionne pas.

10
user781486

J'ai trouvé la réponse à ma propre 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:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/

# Closes the connection
srv.close()

Mettez le srv.put à l'intérieur avec srv.cd

24
user781486