带有S3的heroku回形针 - 不工作

时间:2013-10-28 09:42:31

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

我正在使用paperclip处理我的Rails应用中的图片上传。使用文件存储在本地开发环境中运行良好。

现在我正在尝试使用S3(因为该应用程序将在Heroku上运行)。我已根据此处的说明设置了一个存储桶并在development.rb和production.rb中设置了相应的参数:https://devcenter.heroku.com/articles/paperclip-s3

当我启动服务器时,出现以下错误:

/Users/ganzogo/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.13/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `paperclip' for #<Rails::Application::Configuration:0x007fcb8b952000> (NoMethodError)
  from /Users/ganzogo/Documents/acknowledgement/true-rails/config/environments/development.rb:41:in `block in <top (required)>'

然后它崩溃了。

错误中提到的行是:

config.paperclip.defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}

如果我尝试在Heroku上运行,我会得到完全相同的错误。有没有人经历过这个并且知道我错过了什么?

2 个答案:

答案 0 :(得分:3)

您的配置块中可能会出现拼写错误。尝试将config.paperclip.defaults = {...}更改为config.paperclip_defaults = {...},这样可以解决您的问题。

答案 1 :(得分:0)

我们在我们的一个实时应用程序上工作了

不同之处在于您需要将凭据放入模型本身。这是我们得到的:


#app/models/image.rb
#Image Upload 
        Paperclip.options[:command_path] = 'C:\RailsInstaller\ImageMagick'
        has_attached_file :image,
                :styles => { :medium => "x300", :thumb => "x100" },
                :default_url => "*******",
                :storage => :s3,
                :bucket => '******',
                :s3_credentials => S3_CREDENTIALS


#app/config/application.rb
config.paperclip_defaults = {
            :storage => :s3,
            :s3_host_name => 's3-eu-west-1.amazonaws.com'
    }

在Heroku中,您需要将各种环境变量添加到配置设置