【发布时间】:2016-03-14 16:29:57
【问题描述】:
我想将文件从我的 Rails 应用程序直接上传到 AmazonS3。配置现在看起来像这样:
宝石文件
宝石“回形针”
gem 'aws-sdk'
在 config/application.rb 中
# Amazon S3 configuration for paperclip
config.paperclip_defaults = {
:storage => :s3,
:s3_host_name => 's3-eu-west-1.amazonaws.com'
}
模型 - movie.rb
class Movie < ActiveRecord::Base
# add File to Movie association on column mo
has_attached_file :movie,
:storage => :s3,
:bucket => '--',
:s3_credentials => {
:bucket => '---',
:access_key_id => '---',
:secret_access_key => '---'
}
# validdates the file type
validates_attachment_content_type :movie, :content_type => /\Avideo\/.*\Z/
end
控制器movies_controller.rb
class MoviesController < ActionController::Base
layout "application"
# Method to add a new Movie
def addMovie
if request.post?
#@movie = Movie.new(movies_params)
@movie = Movie.new(params[:movie])
if @movie.save
flash[:notice] = t("flash.moveuploadstarted")
redirect_to :addMovie
end
else
@movie = Movie.new
end
end
private
def movies_params
params.require(:movie).permit(:movietitle, :movieprice, :locked, :moviedescription, :currency, :language)
end
end
当我填写表格并发送电影时,浏览器开始上传电影,左下角会显示视频。但是当达到 100% 时,电影不会存储到 Amazon S3 并且数据库是空的,但没有错误左右....
可能是什么问题? .
更新:
上传表单有这个视频的输入文件
<div class="form-group">
<label><%= f.label :movie %></label>
<%= f.file_field :movie, :class => "form-control", :placeholder => :movie %>
</div>
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 amazon-web-services amazon-s3