WinSCP - Wie kann ich eine Datei komprimieren, herunterladen und löschen?

4112
JohnDoea

Wie ist es möglich, eine Datei in WinSCP zu komprimieren, herunterzuladen und zu löschen (ZDD)?

Beispiel: Ihr lokales Verzeichnis ist Desktop und Ihr Remote-Verzeichnis (das auf Ihrem Server-Computer). /var/www/htmlSie möchten ein bestimmtes Verzeichnis oder eine Datei mit einem ZIP-Code herunterladen und herunterladen, und Sie möchten, dass das Verzeichnis in dem Moment gelöscht wird, in dem es heruntergeladen wurde fertig.


WinSCP - Wie kann ich eine Datei komprimieren, herunterladen und löschen?


Um dies weiter zu erläutern, könnte ich in Linux zum Beispiel Folgendes tun:

( zip -r /var/www/html/dr.zip /var/www/html scp /var/www/html/dr.zip USER@IP:/location rm /var/www/html/dr.zip ) 

Ich brauche eine ähnliche Sache für WinSCP, aber ich weiß, dass der WinSCP-Download-Mechanismus verwendet werden sollte und sich von dem Nix- scpDienstprogramm unterscheidet.

Meine Frage:

Wissen Sie, wie Sie dies mit WinSCP erreichen können?

4
Dafür gibt es keine generische magische Lösung. Zuerst müssen wir wissen, welches Protokoll Sie in WinSCP verwenden. Martin Prikryl vor 7 Jahren 0
Hallo Martin! Es ist mir eine Ehre, Sie dazu zu äußern! Ich verwende SFTP (am nativen Port). Ich weiß, man kann Befehle in WinSCP anpassen, aber mir ist unklar, wie man einen mehrzeiligen Befehlssatz anpassen kann, wie ich ihn oben in der Frage angezeigt habe. Außerdem ist mir unklar, ob die Befehle dort in Bash oder Powershell (?) Geschrieben sein müssen oder ob beide zutreffend sind. Ich hoffe demütig, dass auch diese Punkte beantwortet werden. JohnDoea vor 7 Jahren 0

1 Antwort auf die Frage

4
Martin Prikryl

Es gibt keine Möglichkeit, Dateien über ein Dateiübertragungsprotokoll (SFTP, FTP, SCP oder WebDAV) zu komprimieren. Deshalb gibt es in WinSCP keine solche Funktion, da sie nicht zuverlässig implementiert werden kann.


Wenn Sie jedoch über einen Shell-Zugriff auf den Server verfügen, können Sie die Dateien mit einem Shell-Befehl komprimieren. Das ist eigentlich, was die Tar / GZip benutzerdefinierte Befehl tut.

Wenn Sie es in einem Durchgang (zip-and-download) haben möchten, müssen Sie einen komplexeren benutzerdefinierten Befehl / eine erweiterte Erweiterung implementieren , die eine eigene Sitzung für den Download öffnet . Es wäre den Pack-Dateien sehr ähnlich zum ZIP-Archiv und zum Hochladen dieses Beispiels. Außer, dass es auf dem Remote-Server Session.ExecuteCommandausgeführt werden würde zip(oder ähnlich).

Sie können die Erweiterung in jeder gewünschten Sprache schreiben. PowerShell ist nur die am leichtesten verfügbare Windows-Skriptsprache mit guter (nativer) .NET-Unterstützung. Während dies auch in Bash möglich ist, müssen Sie ein lokales Bash-Skript verwenden (Sie können keine Datei mit einem Remote-Bash-Skript herunterladen). In Windows gibt es standardmäßig kein Bash.

Ich denke, wenn zip problematisch ist, könnte ich tar.gz verwenden und es dann leicht in Win10 mit Winrar oder Winzip extrahieren. Wenn ich Corret verstehe, wenn ich keine Skriptdatei laden und den Befehl in WinSCP einfügen möchte, könnte ich einfach einen Zeilenbefehl wie folgt kopieren und einen benutzerdefinierten Befehl erstellen: `zip -r / var /www/html/dr.zip / var / www / html && scp /var/www/html/dr.zip USER @ IP: / location && rm / var / www / html / dr.zip`. JohnDoea vor 7 Jahren 0
Natürlich könnte ich nur zip to tar ersetzen. JohnDoea vor 7 Jahren 0
Ich bin nicht sicher, ob du es verstehst. "zip" ist nicht mehr oder weniger problematisch als "gzip" / "tar". Der Shell-Zugriff ist die Einschränkung. - Außerdem können Sie kein Remote-Bash-Skript / -befehl verwenden, um Dateien vom Server auf Windows zu ziehen. Daher können Sie das `scp` im benutzerdefinierten Befehl nicht verwenden, da dies auf dem Server ausgeführt wird (natürlich nur, wenn Sie einen SSH-Server ausführen.) auf dem lokalen Windows-Rechner). Martin Prikryl vor 7 Jahren 1
Oh, entschuldige, dass ich dort verwirrt bin. Ich meinte, anstelle von "scp" würde es etwas anderes geben (dasselbe, was WinSCP verwendet, um Dateien in Windows zu ziehen). JohnDoea vor 7 Jahren 0
Es gibt auch keine Möglichkeit, Dateien mit ** Elementen ** abzurufen, die Sie auf dem Server ausführen können. Sie müssen ein lokales Skript verwenden, das für den Download eine eigene Verbindung öffnet. Siehe die Links in meiner Antwort. Martin Prikryl vor 7 Jahren 1
Oh ich verstehe dich jetzt. Wenn ich auf "Herunterladen" klicke, wird das lokale Skript aufgerufen (im Gegensatz zu dem oben beschriebenen Skript, das lokal auf dem Server ausgeführt wird). Vielen Dank, dass Sie das geklärt haben und ich werde jetzt die Links überprüfen. JohnDoea vor 7 Jahren 0
Der "Download" ist eine interne Funktion von WinSCP und führt kein Skript aus. Ansonsten glaube ich, dass Sie das Konzept jetzt verstehen. Martin Prikryl vor 7 Jahren 0