Wenn ich Sie richtig verstanden habe, möchten Sie den Endbenutzern eine sehr einfache Schnittstelle zur Verfügung stellen, die in ihr Dateisystem integriert ist. Sie werden einen gewöhnlichen Ordner auf ihrem Betriebssystem sehen, sie werden Dateien kopieren und verschieben, sie umbenennen, usw. Was auch immer sie in einem anderen Ordner auf ihren Computern tun.
Dieser Ordner ist jedoch kein echter Ordner im Hintergrund. Sie möchten vollständige Kontrolle über die Vorgänge in diesem Ordner haben. Wenn sie eine Datei in diesen Ordner kopieren, wollen sie ein PHP-Skript. Wenn sie einen neuen Ordner unter diesem speziellen erstellen, wird sich ein anderes PHP-Skript darum kümmern.
Wie Salva vorgeschlagen hat, ist die Erstellung einer eigenen Dateisystemschnittstelle wirklich eine gute Lösung. aber es ist weder ein schneller noch ein leichter. Da Sie PHP als Ihr Backend erwähnt haben, denke ich, dass Sie einen Ansatz auf höherer Ebene wünschen.
Ihr Problem hat zwei Seiten zu kümmern: Client und Server. Auf Client-Seite benötigen Sie ein Dateisystem, das sich einfach als Ordner auf einem Posix-System oder als Laufwerk unter Windows mounten lässt. Dafür gibt es viele Alternativen, von denen Samba und NFS zwei sind.
Sie werden Server-Seite davon in PHP tun, wie ich verstanden habe. In Anbetracht dessen würde ich WebDAV anstelle von Samba oder NFS empfehlen. Es ist viel einfacher, auf Serverseite zu implementieren. Es ist auf fast jedem modernen Betriebssystem verfügbar.Es gibt sogar Browser-Plugins für den Webdav-Zugriff, so dass Sie sehr einfach mehrere Schnittstellen für Ihre Kunden bereitstellen können.
Wenn Sie auf der Serverseite PHP verwenden, gibt es eine Open-Source-PHP-Bibliothek namens sabredav. Mit einer schnellen Suche bei Google habe ich dafür sogar a tutorial gefunden.
In diesem Setup können Sie Dateien so verarbeiten, wie Sie möchten. Dies kann ein Einzelmaschinen-System sein, indem ein Webserver wie nginx oder Apache in Ihr System für die PHP-Seite eingebettet wird oder als ein Dienst bereitgestellt wird, der auf Ihren Servern läuft.
Ich hoffe, ich habe Ihre Frage richtig verstanden und dies ist die Lösung, nach der Sie gesucht haben.
UPDATE: Wenn Sie eine Chance haben keine andere Lösung für die Verwendung, wie ich vorgeschlagen, und es hat wirklich Samba und NFS sein; Beide Protokolle sind wirklich zu umfangreich, um sie in PHP zu implementieren. Es wird eine große Belastung und langfristige Kopfschmerzen sein.
Sie können jedoch normale NFS/Samba-Server verwenden und versuchen, Datei-Updates im Hintergrund mit Ihrer Anwendung zu überwachen. Das bedeutet, dass die speziellen Funktionen, die Sie bereitstellen möchten, wie Datei-Tags oder Virenscans, mit einer wahrscheinlich akzeptablen Latenz verfügbar sein werden. Um dies zu implementieren, können Sie alle Dateien und Ordner auf dem System überprüfen und an den geänderten/neuen arbeiten. Eine einfachere Sache wäre die Verwendung von Servern mit Protokollierungsmechanismen für jede Aktion und die Verfolgung ihrer Protokolle. Dies kann sogar noch besser sein, als Client-Maschinen direkt zu verbinden. Wenn Sie Ihr System korrekt erstellen, ist die Latenzzeit zwischen Dateiänderungen und deren Verarbeitung selbst auf einem sehr großen System sehr vernünftig. Dafür kann nas4free eine wirklich gute Lösung sein, da es viele Schnittstellen von einem einzigen System bereitstellt und gemäß its features page über Syslog-Fähigkeit verfügt.
Sie pumpen zwischen Prozessen, nicht Dateien. Nicht sicher, was du meinst, indem du "Verzeichnis als eine Pipe erstellst" – Attila
Ich dachte an Named Pipes (mit denen man Daten einfügen kann, zB mit 'cat [file]> named_pipe' und Daten holen) - aber das war nur ein erster Schuss im Dunkeln. Ich bin auf der Suche nach einer Möglichkeit, einen "Endpunkt" über Samba und NFS bereitzustellen, wo Dateien abgelegt werden können, die sofort durch Viren-Scanning und Meta-Prozess behandelt werden. Dies sollte eine Echtzeitverarbeitung ermöglichen und großen Speicherverbrauch vermeiden. – rabudde
Erinnert mich an sendmail * -Daemon. Mail geht in den Ordner/var/spool/mqueue, der von sendmail verarbeitet wird und wird schließlich verschoben (oder entfernt). –