Équilibrage de Taglib-Ruby et des ressources (libération de poignées de fichiers)?
-
12-11-2019 - |
Question
Amis,
J'essaie de traiter une énorme quantité de fichiers audio à l'aide d'un Rubis (1.9.3) Script en scannant leur ID3-Tags en utilisant le assez rapide taglib-ruby
(0.2.1 via Gem-Server) Library.
Voici une partie de mon code, tandis que audio
Contient le chemin complet du fichier dans une corbe-rayon:
begin
file_ref = TagLib::FileRef.new(audio)
unless file_ref.tag.nil?
unless file_ref.tag.artist.nil? or file_ref.tag.title.nil?
…
end
end
ensure
file_ref = nil
end
Ensuite, j'ai des ennuis presque à la fin du traitement. Tague se plaint des autorisations de lecture manquantes et FileUtils.mv
n'est plus capable de déplacer le fichier par la suite. C'est probablement le cas, car mon script ne fait pas de poignées de fichiers gratuites Tague Manger pendant le traitement.
Malheureux Je n'ai pas trouvé une certaine méthode de rubis dans taglib-ruby
API, qui appelle finalement un ou mieux Taguements Functions C:
taglib_tag_free_strings();
taglib_file_free(file);
libmagic
Ruby Bindings, par exemple, fournit un close
-Méthode dans son Magic
classe, de sorte que la libération qui s'assure que les blocs fonctionneront.
Est-ce que je manque juste la méthode Ruby correcte pour taglib-ruby
Ou manque-t-il en ce moment? Existe-t-il une autre façon de libérer des poignées de fichiers acquises via Ruby?
Pas de solution correcte