0
使用新的AWS Ruby SDK(aws-sdk 2.2.18)和Paperclip,我設法將音頻文件上傳到S3。如何訪問show view中的Rails/Paperclip S3資產,aws-sdk 2
的教程和文檔,我發現都是指AWS-SDK的1.x的版本,例如:Heroku tutorial
這是到目前爲止我的代碼:
模型
has_attached_file :audio
validates_attachment_content_type :audio, :content_type => [ 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio' ]
編輯形式(simple_form)
<%= f.input :audio, as: :file %>
控制器
def update
if @sentence.update(sentence_params)
s3_bucket = Aws::S3::Resource.new.bucket(Rails.application.secrets.aws_s3_bucket)
s3_filename = get_s3_filename(@sentence)
s3_obj = s3_bucket.object(s3_filename)
s3_obj.put(body: sentence_params[:audio])
redirect_to @sentence, notice: 'Sentence was successfully updated.'
else
render :edit
end
end
我遇到的問題是當我嘗試訪問show view中的鏈接來播放音頻時,它不指向S3。
放映視圖
<%= link_to @sentence.audio.url %>
呈現
/system/sentences/audios/000/408/166/original/sample_audio.mp3?1456335849
如何訪問該資產在S3中,特別播放音頻?