J'ai construit une application avec PHP qui montre tous les fichiers dans le répertoire home d'un utilisateur ce répertoire est également disponible via samba afin que vous puissiez y accéder depuis l'explorateur natif sous windows, mac et linux. Je voulais donner un identifiant à chaque fichier afin que je puisse attribuer des étiquettes à chaque fichier. Comment procéderiez-vous? Feriez-vous des hashs du fichier et regardez si c'est le même fichierhash et concluriez donc que c'est le même fichier? Est-ce que je peux déclencher Samba pour envoyer quelque chose à chaque fois qu'un fichier ou un dossier est déplacé?Comment suivre les fichiers dans SMB avec une application?
Répondre
Si votre plate-forme est Linux et que l'installation est assez récente, vous pouvez utiliser inotify pour appeler votre code PHP lorsque des modifications de fichiers sont effectuées. Voir cette partie du manuel PHP:
http://us3.php.net/manual/en/book.inotify.php
L'utilisation de base serait d'ajouter un veilleur sur le répertoire Samba ou répertoires avec un rappel à votre code PHP. Pour des raisons de performances, ce serait une bonne idée de voir si inotify peut se contenter d'envoyer les types de mises à jour qui vous intéressent dans votre code.
Notez cependant qu'inotify supprimera les mises à jour/messages après un certain temps. Vous aurez donc du mal à synchroniser les choses à un moment donné. Une solution consisterait à utiliser inotify sur une base continue en effectuant périodiquement une analyse complète de chaque maison pour vérifier qu'elle reflète votre base de données (ou l'endroit où les étiquettes sont stockées).
Pour répondre à votre première question, il va de soi que faire un hash fonctionnerait bien. Il suffit d'utiliser md5 sur les fichiers. Les chances d'une collision lors du hachage des fichiers dans votre répertoire personnel sont incroyablement faibles. OMI je dirais même pas la peine de mentionner. Et il va probablement sans dire mais ... Je voudrais stocker au moins le hachage et le chemin complet, de sorte que vous pouvez traiter correctement les fichiers déplacés, et en fait faire quelque chose avec le fichier.
- 1. Comment suivre les fenêtres associées dans X11?
- 2. Impossible de suivre les fichiers longs Paths de Git
- 3. Comment suivre les requêtes sur un DataContext
- 4. Suivre les applications démarrées dans Windows
- 5. Comment suivre les utilisateurs en ligne dans Rails?
- 6. Comment démarrer une application web avec eclipse
- 7. Comment suivre plusieurs commentaires utilisateur dans SketchFlow?
- 8. Emballage de certains fichiers avec une application Flex/Flash?
- 9. Comment suivre les dépendances COM/ActiveX?
- 10. Comment utiliser hudson pour suivre une seule mesure
- 11. Inclure les fichiers dans une ligne de commande avec Ruby
- 12. Comment puis-je publier mon site Web avec VisualStudio et suivre les modifications?
- 13. Comment partager des données entre une application C++ et une application C# sans fichiers?
- 14. Comment suivre les événements Google Analytics dans Server Side asp.net?
- 15. Comment configurer une application mvc asp.net avec Subversion?
- 16. Comment utiliser les fichiers EPS dans une application WPF ou Silverlight?
- 17. Comment renommer/déplacer tous les fichiers avec une certaine extension?
- 18. Suivre les modifications sur une base de données
- 19. Existe-t-il un identifiant unique pour les fichiers?
- 20. Comment faire pour suivre les sources tierces avec ClearCase sans un mal de tête?
- 21. scinder des fichiers pour une application P2P
- 22. Comment suivre un lien dans QWebKit?
- 23. Comment suivre l'importation des vues dans Django
- 24. Glisser/Déposer dans une application ET dans une autre application
- 25. Comment ajouter un navigateur de fichiers dans mon application Java?
- 26. Comment analyser les fichiers GPX avec SAXReader?
- 27. Fichiers dans une application Web basée sur Windows
- 28. où stocker des fichiers multimédia dans une application iPhone
- 29. Suivre les fuites de mémoire dans un script Ruby
- 30. Comment charger les fichiers .dds dans une imagebox?