我正在开发一个Rails 3应用程序,用户上传该个人资料图片。我已经遵循了一些在线配置,我认为我真的很接近它的工作,但我似乎无法让文件出于某种原因去亚马逊桶。
这是我的设置
用户模型有这个
has_attached_file :photo,
:styles => {:small => "83x83>"},
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/:style/:filename",
:bucket => 'mybucket'
我的yml文件看起来像这样
development:
bucket: "dev"
access_key_id: "kjlkjlkjlkjlkjlkjlkj"
secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj"
test:
bucket: "test"
access_key_id: "kjlkjlkjlkjlkjlkjlkj"
secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj"
production:
bucket: "prod"
access_key_id: "kjlkjlkjlkjlkjlkjlkj"
secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj"
我在我的控制器中的操作执行此操作
def upload_image
current_user.update_attributes(params[:user])
redirect_to "/profile/#{current_user.id}"
end
我在rails控制台中检查了user.photo对象,我在:errors param中看不到任何内容。我在这一点上很难过。我确实使用我的FTP程序(传输)使用相同的信用卡连接到S3帐户,它工作正常,所以我很确定我的配置是正确的。
答案 0 :(得分:0)
将您的配置更改为: -
has_attached_file :photo,
:styles => {:small => "83x83>"},
:storage => :s3,
:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml"),
:path => "/:style/:filename",
:bucket => 'mybucket'
答案 1 :(得分:0)
在User
模型中,您致电
:bucket => 'mybucket'
但在您的yml
文件中,没有任何存储桶被称为mybucket
。尝试确保名称匹配。