Rails Paperclip S3 – 缺少必需:桶选项

我正在尝试将Amazon S3用于Paperclip附件。 首先,我试图让它在我的iMac上的开发环境中工作。

我创建了亚马逊桶= ndeavor-dev和ndeavor-pro。 在下面的代码中,我已经替换了存储桶名称和密钥。 我有gem的paperclipaws-sdk

我得到的错误是:

 ArgumentError at /attachments missing required :bucket option 

我在config / environments / development.rb中试过这个:

  config.paperclip_defaults = { :storage => :s3, :s3_protocol => 'http', :bucket => ENV['AWS_BUCKET'], :s3_credentials => { :access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] } } 

我尝试了这个(移动:桶):

  config.paperclip_defaults = { :storage => :s3, :s3_protocol => 'http', :s3_credentials => { :bucket => ENV['AWS_BUCKET'], :access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] } } 

谢谢您的帮助!

像dcro说的那样,您需要正确设置AWS_BUCKET环境变量。

为此,请在config / application.yml上创建一个文件,并使用您的Amazon凭据将以下内容放入其中:

 AWS_ACCESS_KEY_ID: "whatever_the_key_is" AWS_SECRET_ACCESS_KEY: "whatever_the_secret_is" AWS_BUCKET: "ndeavor-dev" 

然后重启服务器。 然后,您就可以使用这样的模型:

  has_attached_file :attachment , :storage => :s3 , :s3_credentials => {:bucket => ENV['AWS_BUCKET' ], :access_key_id => ENV['AWS_ACCESS_KEY_ID' ], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']}, :s3_protocol => "https" , :s3_host_name => "s3-eu-west-1.amazonaws.com"