2008-12-11 12 views
3

Notre problème est que notre projet a des fichiers téléchargés en utilisant wget dans le système de fichiers. Nous utilisons ruby ​​pour lire les fichiers téléchargés pour les données.
Comment est-il possible de dire si le fichier est complètement téléchargé afin que nous ne lisions pas un fichier à moitié complet?Comment savoir dans Ruby si un fichier est complètement téléchargé

Répondre

7

je posais une very similar question et quelques bonnes réponses ... En résumé, utilisez une combinaison d'un ou plusieurs des éléments suivants:

  • télécharger le fichier à une zone d'attente et enfin copier dans votre répertoire d'entrée ;
  • utiliser un fichier de marqueur, créé une fois le téléchargement terminé, pour signaler l'état de préparation;
  • interroger le fichier deux fois et voir si sa taille a cessé d'augmenter;
  • vérifier les permissions du fichier (certains processus de téléchargement bloquent les lectures pendant le téléchargement);
  • utilisez une autre méthode comme le téléchargement in-thread par le processus Ruby.

Pour citer Martin Cowie, "Ceci est un problème de middleware aussi vieux que les collines" ...

2

L'approche typique est de télécharger le fichier vers un emplacement temporaire et lorsque vous avez terminé « déplacer » vers la destination finale pour le traitement.

Questions connexes