Carrierwave(与FOG)文件扩展名不匹配

时间:2013-08-27 15:26:05

标签: ruby-on-rails carrierwave fog

我正在上传一个audiofile并制作一个有效的mp3版本。另外,我正在从mp3生成一个波形作为“png”。这也很好。

图像已生成并保存,但后缀为“mp3”,应为“png”。 该视图使用“mp3”文件扩展名称正确呈现图像。

现在,当视图尝试获取图像时,我收到404错误。文件名未正确设置:

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform_Sky_02.wav

应该是

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform.png

这是我的:版本代码:

 version :waveform do

    def filename
      "watermark.png" if original_filename.present?
    end

    def convert_to_waveform
      cache_stored_file! if !cached?
      Dir::Tmpname.create(File.basename(current_path)) do |tempname|
        begin
          puts system %Q{ffmpeg -y -i "#{current_path}" -f wav "#{tempname}" > /dev/null 2>&1}
          FileUtils.rm current_path
          Waveform.generate(tempname, current_path, method: :rms, background_color: :transparent)

        ensure
          FileUtils.rm tempname
        end
      end
    end

    process :convert_to_waveform

  end

数据库保存“waveform_Sky_02.wav”

我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:0)

这对我有用:

def full_filename(for_file=file)
  super.chomp('wav') + '.png'
end

或所有文件类型:

def full_filename(for_file=file)
  super.chomp(File.extname(super)) + '.png'
end