Seite 1 von 1

[Paramiko] Kompletter Ordnerinhalt übertragen

Verfasst: Donnerstag 31. Mai 2012, 15:37
von lackschuh
Hallo

Um Dateien von mir lokal auf meinen Server zu übertragen, verwende ich paramiko. Leider gelingt es mir nicht, ganze Ornder mit deren Inhalt zu übertragen. Einzelne Dateien funktionieren schon mal.

Was muss ich ergänzen, damit ich auch Ordner kopieren kann?

Anbei das Skript:

Code: Alles auswählen

import paramiko
import Crypto


# Open a transport

host = "xxxxx"
port = 22
transport = paramiko.Transport((host, port))

# Auth

password = "xxxxx"
username = "xxxxxx"
transport.connect(username = username, password = password)

# Go!

sftp = paramiko.SFTPClient.from_transport(transport)

# Download

#filepath = '/var/www/xxx/test.txt'
#localpath = 'C:\\Users\\xxxx\\Desktop\\test.txt'
#sftp.get(filepath, localpath)

# Upload 1

filepath = '/var/www/xxx/htdocs/test'  #test ist in diesem Fall ein Ordner mit mehreren Dateien
localpath = 'C:\\Users\\xxxx\\Desktop\\test'
sftp.put(localfile, remfile)

# Close

sftp.close()
transport.close()
Vielen Dank für eure Hilfe.

EDIT:

hab mal den ganzen Abend im www nach einer Lösung gesucht. Kann es sein, dass mittels Paramiko nur einzelne Files kopiert werden können?

siehe Doku:

Code: Alles auswählen

put(self, localpath, remotepath, callback=None, confirm=True)
Copy a local file (localpath) to the SFTP server as remotepath.

Re: [Paramiko] Kompletter Ordnerinhalt übertragen

Verfasst: Freitag 1. Juni 2012, 14:10
von Leonidas
Schaut so aus als müsstest du dir die Dateien auflisten lassen und sie einzeln kopieren, ja. Aber ich hab jetzt auch nur die Doku kurz überflogen.

Re: [Paramiko] Kompletter Ordnerinhalt übertragen

Verfasst: Freitag 1. Juni 2012, 15:36
von Gremlin
Stimmt schon. So "convenience" Funktionen wie Verzeichnis-Upload bietet auch Paramiko nicht. Aber wenn du magst (lackschuh) kannst du dir mal mein Erstprojekt ansehen das ich damals hier vorgestellt habe: http://www.python-forum.de/viewtopic.php?f=9&t=24153

Setze ich persönlich immer noch erfolgreich ein. :mrgreen: (Auch wenn ich die SSH Unterstützung schon länger nicht mehr genutzt habe, sollte aber immer noch funktionieren, sofern sich Paramiko nicht großartig verändert hat.)