Ruby on rails 回形针套件:如果没有分机,则可扩展至mp3
我正在开发一个rails 3应用程序,它使用回形针将音频文件保存到Amazon S3。我保存了很多从url传输的mp3文件,但是它们在传输时没有扩展名。我知道这些文件是mp3文件,但在回形针中它们没有扩展名。如果没有提供分机,如何将分机设置为mp3Ruby on rails 回形针套件:如果没有分机,则可扩展至mp3,ruby-on-rails,ruby-on-rails-3,paperclip,Ruby On Rails,Ruby On Rails 3,Paperclip,我正在开发一个rails 3应用程序,它使用回形针将音频文件保存到Amazon S3。我保存了很多从url传输的mp3文件,但是它们在传输时没有扩展名。我知道这些文件是mp3文件,但在回形针中它们没有扩展名。如果没有提供分机,如何将分机设置为mp3 has_attached_file :audio, :storage => :s3, :s3_credentials => "#{Rails.root}/config/aws.yml", :hash_sec
has_attached_file :audio,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/aws.yml",
:hash_secret => 'secret',
:hash_data => ':class/:attachment/:id',
:path => ':rails_env/:class/:id/:style/:hash.:extension'
def transfer_to_s3
io = open(URI.parse(recording_url + '.mp3'))
self.audio = io
self.save
end
这是一个猜测,但试试这个: 更改:
has_attached_file :photo, :url => "/:class/:attachment/:id/:style_:basename.:extension"
致:
只是个疯狂的想法。可能会有一些句法上的损伤,但可能会把你推向正确的方向。对不起:D
您还可以在保存
后进行匹配和gsub
组合。文件未保存为.mp3的原因是您使用的是打开uri。将保存代码更改为:
self.audio = URI.parse(recording_url)
self.save
这应该能解决你的问题
出现这种情况的原因是,openuri创建了一个没有扩展名的tempfile,并提供给了回形针
希望这有帮助
self.audio = URI.parse(recording_url)
self.save