我已经使用PHP构建了一个应用程序,它显示了用户主目录中的所有文件,这个目录也可以通过samba获得,因此您可以从windows,mac和linux中的本机资源管理器访问它。我想给每个文件一个ID,以便我可以将标签标记到每个文件,你会怎么做呢?你会创建该文件的哈希值,看看它是否是相同的filehash,从而得出它的相同文件?
每次移动文件或文件夹时,我都可以触发samba发送内容吗?
答案 0 :(得分:0)
如果您的平台是Linux并且安装是相当新的,那么您可以使用inotify在进行文件系统更改时调用您的PHP代码。请参阅PHP手册的这一部分:
http://us3.php.net/manual/en/book.inotify.php
基本用法是通过回调PHP代码在Samba目录或目录上添加一个观察程序。出于性能原因,最好只查看inotify是否只将您感兴趣的更新类型发送给您的代码。
但请注意,inotify将在一段时间后丢弃更新/消息。因此,在某个时间点保持事物同步会有问题。一种解决方案是持续使用inotify,并定期对每个家庭进行全面扫描,以验证它是否反映了您的数据库(或标记存储的位置)。
答案 1 :(得分:0)
要回答你的第一个问题,制作哈希当然会有效。只需在文件上使用md5即可。散列主目录中的文件时发生冲突的可能性非常小。 IMO我会说甚至不值得一提。 它可能不言而喻但是...我会存储至少哈希和完整路径,因此您可以适当地处理移动的文件,并且实际上做某事文件。