2017-02-10 1 views
1

Ich habe zuvor ein Skript mit Python geschrieben, das ein Windows-Verzeichnis überwacht und neue Dateien auf einen Remote-Server außerhalb des Unternehmens hochlädt. Die Absicht ist, es jederzeit auszuführen und Benutzern zu erlauben, ihre Dateien dort zu dumpen, um mit dem cloud-Verzeichnis zu synchronisieren.Python: Watchdog Watch reagieren auf teilweise übertragene Dateien?

Wenn eine hinzugefügte Datei groß genug ist, dass sie nicht gleichzeitig auf das lokale Laufwerk übertragen wird, "wacht" Watchdog, da sie teilweise hochgeladen wurde und versucht, die Teildatei hochzuladen, was fehlschlägt. Wie kann ich sicherstellen, dass diese Dateien "vollständig" sind, bevor sie hochgeladen werden? Auch hier bin ich unter Windows und kann nur Windows verwenden, um diese Aufgabe abzuschließen, oder ich hätte inotify verwendet. Ist es überhaupt möglich, unter Windows den Zustand einer Datei auf diese Weise zu überprüfen?

Antwort

0

Es sieht so aus, als gäbe es keinen einfachen Weg, dies zu tun. Ich glaube, Sie an Ort und Stelle etwas setzen können, die die Statistiken für das Verzeichnis überprüft, wenn es löst und nur Aktionen nach einer bestimmten Zeitspanne, die die Ordnergröße nicht geändert hat:

https://github.com/gorakhargosh/watchdog/issues/184

Als Randbemerkung, Ich würde Apache Nifi ausprobieren. Ich habe es mit viel Erfolg verwendet und es war ziemlich einfach aufzustehen https://nifi.apache.org/

+0

Ich hatte Angst, ich müsste so etwas tun. Ich werde Nifi überprüfen, aber zu diesem Zeitpunkt kann es zu spät sein, um zu ändern. Trotzdem danke. – Jesse