使用carrierwave上传到S3时获取mp3持续时间
我正在写一个应用程序,它基本上是一个音乐平台。 我希望通过其元数据获取mp3的持续时间并将其保存在表中,然后再将其上传到S3。
我使用了载波和雾gem的组合来上传。 提取mp3元数据以保存到数据库的推荐方法是什么?
这样的操作有一个gemtaglib-ruby
这是一个例子
def set_duration # :duration is an integer # t.integer "duration", :default => 0 TagLib::FileRef.open(file.file.path) do |file| update_column(:duration, file.audio_properties.length) unless file.null? end end
当然你会拥有自己的attr名称,但一般来说应该有效。