Ruby OpenURI fournit une option content_length_proc
qui permet de déterminer la longueur du contenu * avant le transfert de démarrage:Ruby: abandon openURI basé sur la longueur du contenu
open(url, :content_length_proc => lambda { |content_length|
puts "Content Length: #{content_length}"
}) { |data|
# data.meta, data.read etc.
}
est-il un moyen pour ce proc pour abandonner la réelle, complète récupération?
* Je suis conscient que ce n'est pas fiable - mais il est suffisant pour une heuristique simple dans mon cas
FWIW, op a noté que 'longueur-de-contenu' n'est pas fiable. Une approche fiable consiste à utiliser ': progress_proc' qui indiquera le nombre total d'octets chaque fois qu'un nouveau morceau est retiré du réseau. Vous pouvez donc abandonner si vous obtenez trop de données en fonction des octets réellement téléchargés. – Dan