Wie entpacke ich Dateien über eine FTP-Verbindung?

Wie entpacke ich Dateien über eine FTP-Verbindung?

Ich habe mich per FTP mit meinem Remote-Server verbunden und eine Verzeichnisliste erhalten. Die Liste enthält einige ZIP-Dateien.

Ist es möglich, die Datei zu entpacken (Beispiel: test.zip)? Wenn ja, wie lautet der Befehl?

Antwort1

Das Entpacken von Dateien über eine FTP-Verbindung ist nicht möglich. FTP steht für "File Transfer Protocol" und wurde nur dafür entwickelt, Dateien auf der Gegenseite zu übertragen und teilweise zu verwalten, nicht aber, um Befehle auszuführen. Um ein Archiv zu entpacken, müsste man ein Programm wie tar, bzip2 oder ähnliches ausführen, was über eine FTP-Verbindung jedoch nicht möglich ist.

Du benötigst eine weitere Session, die es dir erlaubt, Kommandos auszuführen, wie z.B. SSH. Oder du entpackst das Archiv auf deiner Maschine und überträgst den Inhalt per FTP, was bei vielen kleinen Dateien wegen des Overheads von FTP deutlich langsamer ist.

Antwort2

Die Antwort ist etwas aus dem Kontext gerissen, funktioniert aber auf jeden Fall. Wenn Sie Apache + PHP in diesem FTP-Verzeichnis ausführen, laden Sie Ihre ZIP-Datei in diesen Ordner hoch und erstellen Sie extractor.php:

$zip = new ZipArchive;
if ($zip->open('my_zip.zip') === TRUE) {
    $zip->extractTo('/path/to/my/zip');
    $zip->close();
    echo 'ok';
}

und klicken Sie dann auf die URL, z. B.: http://example.com/extractor.phpBingo. PHP extrahiert die Zip-Datei für Sie.

Antwort3

Sie können dies tun, indem Sie die FTP-Ressource wie folgt mounten curlftpfs:

curlftpfs ftp://ftp.server.org/ /path/to/mountpoint

Dann

unzip /path/to/mount/test.zip

Antwort4

Ist Ihr Ziel, es zu entpackenauf dem externen Server, oder möchten Sie den Archivinhalt abrufenauf Ihren eigenen Computer?

Der erste Fall wird nicht durch FTP gelöst, sondern durch SSH oder ähnliche Techniken, wie in anderen Antworten beschrieben.

Wenn Sie den entpackten Inhalt einfach "direkt" auf Ihren eigenen Computer übertragen möchten, ohne die Dateien zuerst explizit zu übertragen und dann zu entpacken, können Sie beispielsweise die FTP-Site als Ordner mounten und sie als normale Zip-Datei an einem Ort auf Ihrem lokalen Computer entpacken. Dadurchin der Praxisstreamen Sie den Dateiinhalt direkt an das Entpackprogramm, so dass Sie technischTunÜbertragen Sie die gesamte Datei, aber nur im komprimierten Zustand (das spart vermutlich Datenverkehr) und der Inhalt wird ohne den expliziten Zwischenschritt direkt auf Ihrem lokalen Computer angezeigt.

Ich weiß nicht, wie das Zip-Dateiformat spezifiziert ist, wenn es darum geht, nur einen Teil einer Zip-Datei zu entpacken; wenn Sie dieganzDatei trotzdem oder nur den komprimierten Teil, der dieser Datei entspricht. Ich sehe keine wirklichen technischen Gründe, warum diese Art der selektiven Übertragung nicht möglich wäre (das FTP-Protokoll erlaubt nur die Übertragung von Teildateien, um eine Fortsetzung zu ermöglichen).

verwandte Informationen