Python ftplib kann Dateigröße vor dem Download nicht bekommen?

7

Ich verwende ftplib, um Dateien zu übertragen. Alles funktioniert super. Jetzt versuche ich die Größe der Zieldatei vor dem Download zu erhalten.

  1. Zuerst habe ich nur versucht, Größe mit ftp.size (Dateiname) zu bekommen. Der Server hat sich beschwert, dass ich das nicht im ASCII-Modus machen kann.

  2. Dann habe ich versucht, den binären Modus mit ftp.sendcmd ("binary") und ftp.sendcmd ("bin") zu setzen. In beiden Fällen beschwerte sich der Server "500 binär nicht verstanden"

Kann ftplib die Größe einer Datei vor dem Download in diesem Fall bekommen? Ich kontrolliere den FTP-Server nicht und kann nicht ändern, wie er sich verhält.

Danke

    
jason 12.07.2010, 20:17
quelle

3 Antworten

17

Sehr späte Antwort, aber hier ist die richtige Antwort. Dies funktioniert mit ProFTPD.

%Vor%     
Ryan 09.03.2011 05:51
quelle
4

Ftplib kann die Größe einer Datei vor dem Herunterladen erhalten. Wie die Dokumentation sagt:

  

FTP.size (Dateiname)   Fordern Sie die Größe von an   die Datei Dateiname auf dem Server.   Bei Erfolg ist die Größe der Datei   als Integer zurückgegeben, andernfalls None   ist zurück gekommen. Beachten Sie, dass die Größe   Befehl ist nicht standardisiert, aber ist   unterstützt von vielen gemeinsamen Server   Implementierungen

Offenbar unterstützt Ihr Server diese Funktion nicht.

    
Piotr Duda 12.07.2010 20:34
quelle
0

"Server hat sich beschwert, dass ich das im ASCII-Modus nicht machen kann." - Versuchen Sie, den genauen Code, den Sie verwendet haben, UND den genauen Text der Serverantwort anzuzeigen. Verwenden Sie Kopieren / Einfügen, nicht aus dem Speicher eingeben.

Haben Sie Zugriff auf einen FTP-Befehlszeilenclient? Wenn nicht, nimm einen. Verwenden Sie es, um mit dem zu experimentieren, was der Server tun kann. Ein Clientbefehl wie REMOTEHELP ist dein Freund. Beispiel:

%Vor%

Dies zeigt an, dass der Server, mit dem ich verbunden war, einen SIZE-Befehl unterstützt.

    
John Machin 12.07.2010 22:08
quelle

Tags und Links