[Paramiko] Kompletter Ordnerinhalt übertragen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

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.)
Antworten