いつもお世話になっております。
Railsでmp3のアップロード、ダウンロードができるるようなシステムを開発しています。
S3 + Carrierwaveで実装しています。
やりたいこととして、mp3をS3よりダウンロードする際にメタデータの書き換え(タイトル、アーティスト情報など)を変更したいと考えています。
https://maku77.github.io/ruby/ruby-mp3info.html
上記サイトを参考にlinuxのシステム上の/var/tmp/直下においた音楽ファイルに関しては下記のようなコードで変更することができました
ruby
1Mp3Info.open('/var/tmp/test.mp3') do |mp3| 2 mp3.tag2.TIT2 = 'title' 3 mp3.tag2.TPE1 = 'artist1/artist2' 4end
しかし、実際の動きとしてS3のファイルを以下のようにダウンロードする過程で、書き換えをするという流れであり、以下のように記述すると、title、artistの値が空白状態となります(元ファイルにはtitle、artistは入力されている)。
ruby
1s3 = Aws::S3::Resource.new( 2 region: Region_name, 3 credentials: Aws::Credentials.new( 4 S3_access_key, 5 S3_secret_key 6 ) 7 ) 8data = s3.client.get_object(:bucket => Bucket_name, :key => key).body 9 10Mp3Info.open(data) do |mp3| 11 mp3.tag2.TIT2 = 'title' 12 mp3.tag2.TPE1 = 'artist1/artist2' 13end 14 15send_data data.read, filename: file_name, disposition: 'attachment', type: type 16
data.readでダウンロードする前提のdataに対して、メタデータを書き込むにはどのようにすればよいのでしょうか。
S3からのダウンロード時にメタデータを変更するような記事が全くと言ってなく、調べても分からない状態のためこちらに質問させていただきました。
参考になるサイトでも構いませんので、適切な方法をご教示いただけますと幸いです。
よろしくお願いいたします。
環境
Amazon Linux release 2 (Karoo)
Rails 5.2.3
Ruby version: 2.6.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。