La détection de modification de fichier sur un partage SMB à distance en utilisant PHP

StackOverflow https://stackoverflow.com/questions/1660542

  •  11-09-2019
  •  | 
  •  

Question

J'écris un processus PHP qui sera exécuté sur une machine Unix qui devra surveiller un serveur SMB à distance et de détecter de nouveaux fichiers qui sont téléchargés dans cette boîte via FTP. Il est peu probable que je serai en mesure de

Il devra détecter:

  1. Les nouveaux fichiers créés
  2. terminer le téléchargement du fichier
  3. Les fichiers en cours de suppression

S'il était un partage NFS, j'essayer d'utiliser FAM pour détecter les événements, mais je ne vois pas une façon de faire quoi que ce soit équivalent?

Était-ce utile?

La solution

Ne ressemble pas à quelque chose que je voudrais utiliser dans la production. Mais vous pouvez essayer quelque chose comme ceci:

  1. monter le partage SMB avec Samba la machine qui exécute un PHP démon
  2. utilisez SPL RecursiveIteratorIterator avec DirectoryIterator pour recueillir et maintenir une liste de tous les fichiers et dossiers sur le lecteur partagé
  3. une fois un certain temps rafraîchir la liste des dossiers et comparer avec l'état actuel, si le fichier n'existe pas plus vous savez qu'il a été supprimé, si là, il est mis un nouveau fichier dans le la file d'attente et la marquer comme « étant uploadé "
  4. dans la prochaine « run rafraîchissement » vérifier le fichier mis en attente, il le fichier la taille n'a pas changé le chargement de fichier probablement terminée, si la taille du fichier changé le mettre dans la file d'attente à nouveau et la marquer comme « en cours de téléchargement »
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top