【问题标题】:Detecting file modification on a remote SMB share using PHP使用 PHP 检测远程 SMB 共享上的文件修改
【发布时间】:2010-12-12 05:52:52
【问题描述】:

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

需要检测:

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

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

【问题讨论】:

    标签: php windows smb


    【解决方案1】:

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

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

    【讨论】:

    • 5.维护文件哈希列表,以便您可以检测文件何时更改。
    • @Goran - 这几乎是我想到的策略,但我真的担心它不会很好地扩展。
    • 最终取决于将存储在该共享上的文件和文件夹的数量。
    猜你喜欢
    • 2013-12-24
    • 2014-02-07
    • 2019-07-07
    • 1970-01-01
    • 2018-03-23
    • 2016-05-09
    • 2018-07-26
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多