2009-11-02 68 views
1

我正在编写一个PHP进程,该进程将运行在需要监视远程SMB服务器并检测正在通过FTP上传到该文件夹​​的新文件的Unix机器上。这很可能我就可以使用PHP检测远程SMB共享上的文件修改

这将需要检测:

  1. 新文件被创建
  2. 文件上传完成
  3. 文件被删除

如果它是一个NFS共享,我会尝试使用FAM来检测事件,但是我看不到任何对等方法?

回答

1

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

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

5.保持文件的哈希列表,这样你就可以检测文件何时更改。 – Marko 2009-11-02 11:04:17

+0

@Goran - 这几乎是我想到的策略,但我真的很担心它不会很好地扩展。 – 2009-11-02 14:19:21

+0

最终它取决于将存储在该共享上的文件和文件夹的数量。 – 2009-11-02 21:33:23

相关问题