Если вы правильно поняли, что вы хотите сделать, это предоставить конечным пользователям очень простой интерфейс, интегрированный в свою файловую систему. Они будут видеть обычную папку в своей операционной системе, они будут копировать и перемещать файлы, переименовывать их и т. Д. Независимо от того, что они делают в любой другой папке на своих компьютерах.
Однако эта папка не будет реальной папкой в фоновом режиме. Вы хотите иметь полный контроль над операциями в этой папке. Когда они копируют файл в эту папку, вы хотите, чтобы PHP-скрипт обрабатывал это. Когда они создадут новую папку под этим специальным, другой скрипт PHP позаботится об этом.
Как предложил salva, создание интерфейса файловой системы по своему усмотрению действительно является хорошим решением; но это не быстро и нелегко. Поскольку вы упомянули PHP как свой сервер, я думаю, вам нужен подход более высокого уровня.
У вашей проблемы есть две стороны, о которых нужно заботиться: клиент и сервер. На стороне клиента вам нужна файловая система, которую легко монтировать как папку в системе posix или как диск в Windows. Есть много альтернатив для этого, Samba и NFS являются двумя из них, как вы упомянули.
Вы будете делать серверную часть этого в PHP, как я понял. Учитывая это, я бы предложил использовать WebDav вместо Samba или NFS. Это намного проще реализовать на стороне сервера. Он доступен практически для каждой современной операционной системы.Существуют даже плагины браузера для доступа к webdav, поэтому вы можете легко предоставить несколько интерфейсов для своих клиентов.
На стороне сервера, если вы используете PHP, есть библиотека php с открытым исходным кодом, которая называется sabredav. Просто для быстрого поиска в Google я даже нашел a tutorial.
В этой настройке вы можете обрабатывать файлы так, как хотите. Это может быть однокомпонентная система, встраивая веб-сервер, такой как nginx или Apache, в вашу систему на стороне PHP или предоставляемый как служба, работающая на ваших серверах.
Надеюсь, я правильно понял ваш вопрос, и это решение, которое вы искали.
UPDATE: Если вы не имеете шанс с помощью другого решения, как я предложил, и это действительно должно быть Samba и NFS; оба протокола действительно слишком много для реализации на PHP. Это будет большая нагрузка и долгосрочная головная боль.
Однако вы можете использовать обычные серверы NFS/Samba и пытаться отслеживать обновления файлов в фоновом режиме приложением. Это означает, что специальные функции, которые вы хотите предоставить, такие как пометка файлов или проверка на вирусы, будут доступны с вероятной приемлемой задержкой. Чтобы реализовать это, вы можете проверить все файлы и папки в системе и работать с измененными/новыми. Проще всего будет использовать серверы с механизмами протоколирования для каждого действия и следить за их журналами. Это может быть даже лучше, чем напрямую взаимодействовать с клиентскими машинами. Если вы правильно заархивируете свою систему, задержка между изменениями файлов и их обработкой будет действительно разумной даже в очень большой системе. Для этого nas4free может быть действительно хорошим решением, поскольку он обеспечивает множество интерфейсов из одной системы и, согласно its features page, имеет возможность syslog.
Вы прокладываете между процессами, а не файлами. Не уверен, что вы подразумеваете под «созданием каталога как трубы» – Attila
Я думал об именованных каналах (которые можно использовать для ввода данных в, например, с помощью 'cat [file]> named_pipe' и получать данные), но это было только первый выстрел в темноте. Я ищу способ предоставить «конечную точку» через Samba и NFS, где файлы могут быть размещены, которые обрабатываются путем сканирования вирусов и мета-процесса немедленно. Это должно обеспечить обработку в реальном времени и избежать огромного потребления памяти. – rabudde
Напоминает мне о sendmail * daemon. Почта переходит в папку/var/spool/mqueue, обработанную sendmail, и в конечном итоге перемещается (или удаляется). –