Laden Sie ein dateiähnliches Objekt mit Paramiko hoch?

8

Ich habe eine Menge Code, der so aussieht:

%Vor%

Ist es möglich, einen Upload so durchzuführen, ohne die Datei irgendwo zu schreiben?

    
Brendan Long 06.05.2011, 17:10
quelle

2 Antworten

12

Aktualisieren Ab Paramiko 1.10 können Sie putfo :

%Vor%

Anstatt paramiko.SFTPClient.put zu verwenden, können Sie paramiko.SFTPClient.open verwenden, wodurch ein file -ähnliches Objekt geöffnet wird. Sie können dazu schreiben. Etwas wie das:

%Vor%

Beachten Sie, dass es sich lohnen kann, Paramiko-Daten in 32 KiB-Chunks zu füttern, da dies der größte Chunk ist, den das SSH-Protokoll verarbeiten kann, ohne es in mehrere Pakete zu zerlegen.

    
user25148 06.05.2011, 17:43
quelle
2

Ist StringIO was Sie suchen? ( Dokumentseite )

SFTPClient s get() und put() Funktionen nehmen Pfade und nicht Datei-Handles, was die Sache ein wenig peinlich macht.

Sie könnten einen Wrapper für paramiko.SFTPClient schreiben, um ihm die gewünschte Funktionalität zu geben.

Hier ist mein bester unerprobter Versuch:

%Vor%

Wenn es funktioniert, sollten die Funktionen get und put jetzt lokale Datei-Handles anstatt Pfade verwenden.

Ich musste lediglich den Code entfernen, der die Datei aus dem Pfad öffnet, und den Code ändern, der die Größe der Datei für os.fstat anstelle von os.stat verwendet.

    
Acorn 06.05.2011 17:26
quelle

Tags und Links