Comment suivez-vous les fichiers dans SMB avec une application?

J’ai construit une application avec PHP qui affiche tous les fichiers du répertoire personnel d’un utilisateur. Ce répertoire est également disponible via Samba, vous pouvez donc y accéder depuis l’explorateur natif de Windows, Mac et Linux. Je voulais donner un identifiant à chaque fichier afin que je puisse atsortingbuer des balises à chaque fichier. Comment procéderiez-vous? Feriez-vous des hashs du fichier et chercheriez-vous à savoir s’il s’agit du même fichier et conclurait donc que c’est le même fichier?

Puis-je déclencher l’envoi de fichiers Samba chaque fois qu’un fichier ou un dossier est déplacé?

Si votre plate-forme est Linux et que l’installation est relativement récente, vous pouvez utiliser inotify pour que votre code PHP soit appelé lors de la modification du système de fichiers. Voir cette partie du manuel PHP:

http://us3.php.net/manual/en/book.inotify.php

L’utilisation de base serait d’append un observateur sur le ou les répertoires Samba avec un rappel à votre code PHP. Pour des raisons de performances, il serait judicieux de voir si inotify peut uniquement être indiqué pour envoyer les types de mises à jour qui vous intéressent dans votre code.

Notez toutefois que inotify supprime les mises à jour / messages après un certain temps. Vous aurez donc des problèmes pour garder les choses synchronisées à un moment donné. Une solution consisterait à utiliser inotify sur une base régulière et à effectuer périodiquement une parsing complète de chaque maison pour vérifier si elle reflète votre firebase database (ou l’emplacement des balises).

Pour répondre à votre première question, faire un hash serait bien sûr utile. Utiliser simplement md5 sur les fichiers serait suffisant. Les chances d’une collision lors du hachage des fichiers de votre répertoire personnel sont extrêmement faibles. IMO je dirais même pas la peine de mentionner. Et cela va sans dire, mais je stockerais au moins le hachage et le chemin complet, de sorte que vous puissiez gérer les fichiers déplacés de manière appropriée, et faire quelque chose avec le fichier.