如果我正确地理解了你,你想要做的是为最终用户提供一个集成到他们文件系统的非常简单的界面。他们将在他们的操作系统上看到一个普通的文件夹,他们将复制和移动文件,重命名它们等。无论他们在计算机上的任何其他文件夹上做什么。
但是,该文件夹在后台将不是真实的文件夹。您希望完全控制此文件夹上的操作。当他们将文件复制到此文件夹中时,您需要一个PHP脚本来处理该文件。当他们在这个特殊的文件夹下创建一个新文件夹时,另一个PHP脚本会照顾它。
正如salva建议的那样,自己创建一个文件系统接口是一个很好的解决方案;但它不是一个快速也不容易。既然你提到PHP是你的后端,我认为你需要更高层次的方法。
您的问题有两个方面需要注意:客户端和服务器。在客户端,您需要一个文件系统,该文件系统可以很容易地在Windows系统上作为文件夹挂载,或者作为Windows上的驱动器挂载。有很多选择,Samba和NFS就是你提到的其中两个。按照我的理解,你将在PHP中使用它的服务器端。考虑到这一点,我建议使用WebDav而不是Samba或NFS。在服务器端实现起来要容易得多。它几乎可以在每个现代操作系统上使用。甚至还有用于webdav访问的浏览器插件,因此您可以轻松地为客户提供多种界面。
在服务器端,如果您使用PHP,有一个开源的php库,名为sabredav。只需在Google上快速搜索,我甚至找到了a tutorial。
在此设置中,您可以按照自己想要的方式处理文件。这可以是一个单机系统,通过将诸如nginx或Apache之类的Web服务器嵌入到PHP系统的系统中,或者作为服务器上运行的服务提供。
我希望我能正确理解你的问题,这是你正在寻找的解决方案。
更新: 如果您没有机会使用像我建议的不同解决方案,它确实必须是Samba和NFS;这两种协议在PHP中都很难实现。这将是一个很大的负担和长期头痛。
但是,您可以使用普通的NFS/Samba服务器,并尝试使用您的应用程序在后台监视文件更新。这意味着您想要提供的特殊功能(例如文件标记或病毒扫描)将以可接受的延迟提供。为了实现这一点,你可以检查系统上的所有文件和文件夹,并修改/新的文件和文件夹。更容易的事情是使用具有记录机制的服务器来执行每个操作并遵循其日志。这可能比直接连接客户端机器更好。如果您正确地构建您的系统,即使在非常大的系统上,文件修改和处理它们之间的延迟也将非常合理。为此,nas4free可以是一个非常好的解决方案,因为它提供了来自单个系统的许多接口,并且根据its features page,它具有系统日志功能。
您在进程之间管道,而不是文件。不知道你的意思是“将目录创建为管道” – Attila
我想到了命名管道(可用于将数据放入,即使用'cat [file]> named_pipe'并从中获取数据) - 但这只是一个第一枪在黑暗中。我正在寻找一种方法来通过Samba和NFS提供一个“端点”,其中可以放置文件,这些文件可以立即通过病毒扫描和元进程进行处理。这应该提供实时处理并避免巨大的内存消耗。 – rabudde
提醒我sendmail *守护进程。邮件进入由sendmail处理的/ var/spool/mqueue文件夹,并最终移动(或删除)。 –