taglib-ruby e bilanciamento delle risorse (maniglie dei file di liberazione)?
-
12-11-2019 - |
Domanda
Gli amici,
Sto cercando di elaborare un'enorme quantità di file audio utilizzando un Rubino (1.9.3) script scansionando il loro Id3-tags Usando il abbastanza velocemente taglib-ruby
(0,2.1 tramite GEM-Server) Libreria.
Ecco una parte del mio codice, mentre audio
Contiene il percorso completo del file in una corda di rubino:
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
Poi mi metto nei guai quasi alla fine dell'elaborazione. Taglib si lamenta delle autorizzazioni di lettura mancanti e FileUtils.mv
non è più in grado di spostare il file in seguito. Questo è probabilmente il caso, perché il mio script non ha le maniglie dei file gratuite Taglib sta mangiando durante l'elaborazione.
Sfortuna Non ho trovato un certo metodo Ruby in taglib-ruby
API, che alla fine chiama uno o migliore entrambi Taglieri Funzioni C:
taglib_tag_free_strings();
taglib_file_free(file);
libmagic
Gli attacchi di Ruby ad esempio forniscono un close
-Metodo all'interno di il suo Magic
classe, in modo che la liberazione di Whithin garantisca blocchi.
Mi manca solo il metodo Ruby corretto per taglib-ruby
o manca al momento? C'è un altro modo per liberare le maniglie dei file acquisite tramite Ruby?
Nessuna soluzione corretta