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é
3
A
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.