使用PHP检测远程SMB共享上的文件修改

时间:2009-11-02 10:46:38

标签: php windows smb

我正在编写一个将在Unix机器上运行的PHP进程,该机器需要监视远程SMB服务器并检测通过FTP上传到该盒子的新文件。我不太可能

需要检测:

  1. 正在创建的新文件
  2. 文件上传完成
  3. 正在删除的文件
  4. 如果它是一个NFS共享,我会尝试使用FAM来检测事件,但是我看不到做同等事情的方法吗?

1 个答案:

答案 0 :(得分:1)

听起来不像我在制作中会使用的东西。但你可以尝试这样的事情:

  1. 使用Samba安装SMB共享 运行PHP的机器 守护进程
  2. 使用SPL RecursiveIteratorIterator with DirectoryIterator收集和 维护所有文件的列表 共享驱动器上的文件夹
  3. 一次进来 一会儿刷新文件夹列表和 将它与当前状态进行比较, 如果该文件不再存在 你知道它已被删除,如果 有一个新文件放在 排队并将其标记为“存在 上传“
  4. 在下一个“刷新运行”中 检查排队的文件,它是文件 大小没有改变文件上传 可能已完成,如果文件大小 改变了把它再次放入队列中 并将其标记为“正在上传”