Frage

Wir haben eine ftp System-Setup zu überwachen / Download von FTP-Servern, die nicht unter unserer Kontrolle sind. Das Skript eine Verbindung zum Remote-ftp, und packt die Dateinamen von Dateien auf dem Server, überprüfen wir dann, wenn sein etwas zu sehen, die bereits heruntergeladen wurde. Wenn sie nicht heruntergeladen wurde, dann laden wir die Datei und fügen Sie ihn in der Liste aus.

Wir vor kurzem liefen in ein Problem, wo jemand auf der Remote-FTP-Seite, in einer massiven einzelnen Datei kopiert (> 1 GB), dann wird das Skript weckt eine neue Datei sehen und beginnen, um die Datei herunterzuladen, die in kopiert wird.

Was ist der beste Weg, um dies zu überprüfen? Ich dachte, die Dateigröße von Grabbing ein paar Sekunden warten, um die Dateigröße erneut prüfen und sehen, ob es erhöht hat, wenn es nicht dann hat man es herunterladen. Aber da die Zeit der Sorge ist, können wir nicht ein paar Sekunden für jede einzelne Datei Satz warten und sehen, ob es Dateigröße ist erhöht.

Was wäre der beste Weg, um dies zu realisieren, die derzeit alles ftplib über Pythons geschehen ist, wie können wir dies tun, abgesehen von den oben genannten Verfahren verwendet wird.

Wieder einmal lassen Sie mich wiederholen, wir 0 Kontrolle über die Remote-FTP-Sites haben.

Danke.

UPDATE1:

Ich dache, was ist, wenn ich versuche, es zu benennen ... da wir alle Berechtigungen auf dem FTP haben, wenn die Datei-Upload würde im Gang ist der Umbenennungs Befehl scheitern?

Wir haben noch keine wirkliche andere Optionen ... wir tun?

UPDATE2: Nun, hier ist etwas Interessantes einige der ftps wir erscheinen getestet, um automatisch den Speicherplatz zuweisen, wenn die Übertragung beginnt.

z. Wenn ich übertrage eine 200MB-Datei auf den FTP-Server. Während die Übertragung aktiv ist, wenn ich auf dem FTP-Server verbinden und haben eine Größe, während der Upload geschieht. Es zeigt 200mb für die Größe. Auch wenn die Datei nur wie 10% abgeschlossen ist.

Berechtigungen scheinen auch zufällig auf den FTP-Server festgelegt werden, die kommt mit IIS die Berechtigungen setzt nach dem Dateikopiervorgang abgeschlossen ist. Während einige der anderen älteren FTP-Server setzen Sie es, sobald Sie die Datei senden.

: '(

War es hilfreich?

Lösung

„Damn the Torpedos! Volle Fahrt voraus!“

Sie einfach die Datei herunterladen. Wenn es eine große Datei dann, nachdem der Download abgeschlossen ist, so lange warten, wie für Ihr Szenario sinnvoll ist und auch weiterhin den Download von dem Punkt, es gestoppt. Wiederholen, bis es nicht mehr Sachen zum Download bereit.

Andere Tipps

Wie Sie sagen, Sie haben 0 Kontrolle über die Server und kann nicht machen Ihre Kunden Trigger-Dateien veröffentlichen wie von S. Lott vorgeschlagen, müssen Sie mit der unvollkommenen Lösung befassen und Risiko unvollständig Dateiübertragung, vielleicht für eine Weile warten und vergleichen Dateigrößen vor und nach.

Sie können versuchen, umbenennen, wie Sie vorgeschlagen, aber wie Sie 0 Kontrolle haben, können Sie nicht sicher sein, dass der FTP-Server-Administrator (oder deren Nachfolger) nicht ändert, Plattformen oder FTP-Server oder schränkt die Berechtigungen.

Es tut uns Leid.

Wenn Sie mit mehreren Dateien zu tun haben, sehen Sie die Liste aller Größen auf einmal bekommen können, warten Sie 10 Sekunden, und sehen, welche die gleichen sind. Unabhängig davon, welche sind immer noch die gleiche sollten zum Download sicher sein.

Sie können nicht wissen, wenn das O Kopie gemacht wird. Es könnte sich verlangsamen oder warten.

Für absolute Sicherheit, die Sie wirklich benötigen zwei Dateien.

  • Die massive Datei.
  • Und eine winzige Trigger-Datei.

Sie können Chaos mit der massiven Datei alles, was sie wollen. Aber wenn sie die Trigger-Datei berühren, sind Sie beide herunterzuladen.


Wenn Sie keinen Trigger bekommen können, haben Sie die Zeit zum Ausgleich erforderlich gegen den Rest der Zeit abzufragen erforderlich zum Download bereit.

Tun Sie dies.

  1. Hier finden Sie eine Auflistung. Überprüfen Sie Zeitstempel.

  2. Überprüfen Größen vs. vorherige Größe der Datei. Wenn Größe nicht einmal in der Nähe ist, ist es gerade jetzt kopiert. Warten; Schlaufe an diesen Schritt, bis eine Größe der Nähe der vorherigen Größe.

  3. Während Sie nicht getan:

    a. Holen Sie die Datei.

    b. Hier finden Sie eine Auflistung erneut. Überprüfen Sie die Größe der neuen Liste, vorherige Auflistung und Dateien. Wenn sie sich einig: Sie sind fertig. Wenn sie nicht einverstanden: Datei geändert wird, während das Sie das Herunterladen; Sie sind noch nicht fertig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top