Python ftplib Zeitüberschreitung

8

Ich versuche, ftplib zu verwenden, um eine Dateiauflistung zu erhalten und neue Dateien seit meiner letzten Überprüfung herunterzuladen. Der Code, den ich bis jetzt ausführen möchte, ist:

%Vor%

Immer wenn ich das ausführe, wird das Zeitlimit überschritten, wenn ich versuche, den Eintrag abzurufen. Irgendwelche Ideen?

    
blcArmadillo 10.08.2010, 17:43
quelle

2 Antworten

9

Wahrscheinlich ein Konflikt zwischen aktivem und passivem Modus. Stellen Sie sicher, dass eine der folgenden Bedingungen erfüllt ist:

  1. Der Server unterstützt den PASV-Modus und Ihr Client stellt den PASV-Modus
  2. ein
  3. Wenn der Server den passiven Modus nicht unterstützt, muss Ihre Firewall FTP-Übertragungen im aktiven Modus unterstützen.

BEARBEITEN: Ich habe mir die Dokumente angesehen und festgestellt, dass in Python 2.1 und höher der Standard passiver Modus ist. Mit welchem ​​Server sprechen Sie, und wissen Sie, ob es den passiven Modus unterstützt?

Im aktiven Modus (Nicht-PASV) sendet der Client einen PORT-Befehl, der dem Server mitteilt, die DATA-Verbindung an diesem Port zu initiieren. Dazu muss Ihre Firewall den PORT-Befehl kennen, damit sie die eingehende DATA-Verbindung an Sie weiterleiten kann. - Einige Firewalls unterstützen dies. Im passiven Modus öffnet der Client die DATA-Verbindung und der Server verwendet sie (der Server ist beim Öffnen der Datenverbindung "passiv").

Falls Sie nicht den passiven Modus verwenden, machen Sie ftp.set_pasv(True) und sehen Sie, ob das einen Unterschied macht.

    
Jim Garrison 10.08.2010, 18:27
quelle
10

Wenn der passive Modus aus irgendeinem Grund fehlschlägt, versuchen Sie Folgendes:

%Vor%

um den aktiven Modus zu verwenden.

    
Jitendra Joshi 22.03.2012 07:19
quelle

Tags und Links