2017-02-10 5 views
1

J'ai déjà écrit un script en utilisant python qui surveille un répertoire Windows et télécharge tous les nouveaux fichiers vers un serveur distant hors site. L'intention est de l'exécuter à tout moment et permettre aux utilisateurs de vider leurs fichiers pour se synchroniser avec le répertoire cloud.Python: Arrêter le chien de garde réagissant aux fichiers partiellement transférés?

Lorsqu'un fichier ajouté est suffisamment volumineux pour ne pas être transféré en même temps sur le lecteur local, Watchdog le «voit» car il est partiellement téléchargé et tente de télécharger le fichier partiel, qui échoue. Comment puis-je m'assurer que ces fichiers sont "complets" avant d'être téléchargés? Encore une fois, je suis sur Windows, et je ne peux pas utiliser autre chose que Windows pour accomplir cette tâche, ou j'aurais utilisé inotify. Est-il même possible de vérifier l'état d'un fichier de cette manière sous Windows?

Répondre

0

Il semble qu'il n'y ait pas de moyen facile de le faire. Je pense que vous pouvez mettre en place quelque chose qui vérifie les statistiques sur le répertoire quand il se déclenche et que des actions après un certain laps de temps donné que la taille du dossier n'a pas changé:

https://github.com/gorakhargosh/watchdog/issues/184

Comme une note de côté, Je voudrais vérifier Apache Nifi. Je l'ai utilisé avec beaucoup de succès et il était assez facile de se lever et courir https://nifi.apache.org/

+0

j'avais peur que je dois faire quelque chose comme ça. Je vais vérifier nifi, mais à ce stade, il peut être trop tard pour changer. Merci quand même. – Jesse