1

我正在尝试使用回形针将数据上传到 s3。我不断收到以下错误

缺少必需的 :bucket 选项

app/controllers/documents_controller.rb:64:in block in update' app/controllers/documents_controller.rb:63:inupdate'

我已使用适当的 s3 凭据更新了我的 config/environments/development.rb。在本地运行我的应用程序时出现此错误,尚未在 Heroku 上尝试过。任何建议我还缺少什么?

文件.rb

class Document < ActiveRecord::Base
  attr_accessible :documentId, :name, :docstack

  has_attached_file :docstack, styles: {
    thumb: '200x200',
    medium: '33x300>'
  }
end

发展.rb

config.paperclip_defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['bucket'],
    :access_key_id => ENV['123'],
    :secret_access_key => ENV['key']
  }
}

更新: 参考这个博客谢谢

4

2 回答 2

0

我之前遇到过类似的问题并看到相同的错误消息。请务必在 rails 控制台中检查 ENV 变量是否设置正确(“$ ENV['AWS_BUCKET']”)。尽管正确导出了 env 变量,但我的一个返回 nil。重新启动终端后,它按预期工作..

于 2013-05-24T08:06:17.233 回答
0

您是否定义了ENV变量值?

尝试添加此文件,

# /config/initializers/env.rb

ENV['s3_bucket'] = 'XXX'
ENV['s3_access_key_id'] = 'XXX'
ENV['s3_secret_access_key'] = 'XXX'

并将此代码development.rb归档,

# /config/environments/development.rb

config.paperclip_defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['s3_bucket'],
    :access_key_id => ENV['s3_access_key_id'],
    :secret_access_key => ENV['s3_secret_access_key']
  }
}

然后将其添加env.rb到您的.gitignore文件中,这样您的凭据就不会存储在 GIT 中,

# /.gitignore

/config/initializers/env.rb
于 2013-03-24T19:15:43.180 回答