1

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

它将需要检测:

  1. 正在创建的新文件
  2. 文件上传完成
  3. 正在删除的文件

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

4

1 回答 1

1

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

  1. 在运行 PHP 守护程序的机器上使用 Samba 挂载 SMB 共享
  2. 使用 SPL RecursiveIteratorIterator 和 DirectoryIterator 来收集和维护共享驱动器上所有文件和文件夹的列表
  3. 偶尔刷新文件夹列表并与当前状态进行比较,如果文件不再存在则知道它已被删除,如果有新文件将其放入队列并将其标记为“正在上传”
  4. 在下一次“刷新运行”中检查排队的文件,如果文件大小没有改变,文件上传可能完成,如果文件大小改变,再次将其放入队列并将其标记为“正在上传”
于 2009-11-02T10:57:47.153 回答