使用paperclip amazon配置文件未保存到S3

时间:2011-02-28 23:34:56

标签: ruby-on-rails-3 amazon-s3 paperclip

我正在开发一个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帐户,它工作正常,所以我很确定我的配置是正确的。

2 个答案:

答案 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。尝试确保名称匹配。