Frage

Ich schreibe einen PHP-Prozess, der auf einem Unix-Rechner ausgeführt wird, die einen Remote-SMB-Server und erkennen neue Dateien überwachen muß, die diese Box per FTP hochgeladen werden. Es ist unwahrscheinlich, ich werde in der Lage sein

Es muß erkennen:

  1. Neue Dateien erstellt werden
  2. Datei-Upload abgeschlossen
  3. Dateien gelöscht werden

Wenn es eine NFS-Freigabe ist, ich würde versuchen, FAM unter Verwendung der Ereignisse zu erkennen, aber ich kann nicht einen Weg, etwas zu tun, äquivalent sehen?

War es hilfreich?

Lösung

Klingt nicht nach etwas, was ich in der Produktion verwenden würde. Aber man könnte so etwas wie dies versucht:

  1. Montieren Sie die SMB-Freigabe mit Samba auf die Maschine, die eine PHP läuft Daemon
  2. verwenden SPL RecursiveIteratorIterator mit DirectoryIterator zu sammeln und führt eine Liste aller Dateien und Ordner auf dem freigegebenen Laufwerk
  3. einmal in ein, während die Ordnerliste aktualisieren und vergleichen Sie es mit dem aktuellen Zustand, wenn die Datei existiert nicht mehr Sie wissen, dass es gelöscht wurde, wenn gibt es eine neue Datei, um sie in die setzen Warteschlange und markiert ihn als „zu sein uploaded "
  4. in dem nächsten "Refresh-run" überprüfen Sie die Warteschlange-Datei, ist es die Datei Größe ändern nicht die Datei-Upload wahrscheinlich abgeschlossen, wenn die Dateigröße setzen sie wieder geändert in der Warteschlange und markieren Sie ihn als „werden Hochladen“
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top