微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐