ruby-on-rails – AWS S3,缺少需要的Paperclip:bucket选项

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – AWS S3,缺少需要的Paperclip:bucket选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在Heroku上使用Paperclip和SWS S3来让用户上传图像.

我没有我的凭据存储在yml文件中.我按照Heroku页面上的说明进行操作:
https://devcenter.heroku.com/articles/paperclip-s3

但是,当我尝试运行我的应用程序并上传图像时,我收到以下消息:

missing required :bucket option
Rails.root: /Users/scottsipiora/Sites/clycss

Application Trace | Framework Trace | Full Trace
app/controllers/instructors_controller.rb:63:in `block in update'
app/controllers/instructors_controller.rb:62:in `update'

这些说明并没有提及在我的控制器上进行更改的任何内容.我已经看到一些例子,告诉我放在这样的东西:

在我的模型中,我有以下代码

class Instructor < ActiveRecord::Base
  attr_accessible :bio,:hometown,:name,:school,:sort_order,:started_sailing,:started_teaching,:photo
  has_attached_file :photo,styles: {
    thumb: '100x100>',square: '200x200#',medium: '300x300>'
  }
end

在我的production.rb我有(显然用模拟凭证取代我的真实凭据):

config.paperclip_defaults = {
    :storage => :s3,:s3_credentials => {
      :bucket => ENV['bucket name'],:access_key_id => ENV['key_id'],:secret_access_key => ENV['access_key']
    }
  }

我还为生产和开发创建了单独的桶,所以事情更干净.

有任何想法吗?我比较新,这应该很简单.

提前致谢.

解决方法

我想你可能犯了同样的错误.在您的production.rb文件中,不要编辑文本以添加特定的S3键.只需按照教程中列出的方式直接复制粘贴文本.
#production.rb
config.paperclip_defaults = {
  :storage => :s3,:s3_credentials => {
    :bucket => ENV['AWS_BUCKET'],:access_key_id => ENV['AWS_ACCESS_KEY_ID'],:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}

然后,按照开发中心文章的作者的描述,设置环境变量AWS_BUCKET,AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY.

原文链接:https://www.f2er.com/ruby/272846.html

猜你在找的Ruby相关文章