ActionView::Template::Error(缺少必需的 :bucket 选项)

ActionView::Template::Error (missing required :bucket option)

我在 heroku 日志中收到此错误。在 amazon s3 上创建新存储桶并添加我的密钥后,我现在收到此错误。我还将我的 keys/bucket 名称添加到 heroku,如下所示:

=== benjaminsunderland Config Vars
AWS_ACCESS_KEY_ID:        my_access_key
AWS_BUCKET:               mypinterestingapp
AWS_SECRET_ACCESS_KEY:    my_secret_key
DATABASE_URL:             my_database_url
LANG:                     en_US.UTF-8
RACK_ENV:                 production
RAILS_ENV:                production
RAILS_LOG_TO_STDOUT:      enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:          my_secret_key_base

还有 enviroments/production.rb 在我的 rails 应用中

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

我在 heroku 日志中的错误:

2016-11-09T19:10:32.544099+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537] ActionView::Template::Error (missing required :bucket option):
2016-11-09T19:10:32.544249+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     15:   <tbody>
2016-11-09T19:10:32.544275+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     16:     <% @pins.each do |pin| %>
2016-11-09T19:10:32.544676+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     17:       <tr>
2016-11-09T19:10:32.544707+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     18:         <td><%= image_tag pin.image.url %></td>
2016-11-09T19:10:32.544734+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     19:         <td><%= pin.description %></td>
2016-11-09T19:10:32.544764+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     20:         <td><%= pin.user.email if pin.user %></td>
2016-11-09T19:10:32.544790+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]     21:         <td><%= link_to 'Show', pin %></td>
2016-11-09T19:10:32.544818+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537]   
2016-11-09T19:10:32.544854+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537] app/views/pins/index.html.erb:18:in `block in _app_views_pins_index_html_erb___1097567776692289569_70248207788000'
2016-11-09T19:10:32.544884+00:00 app[web.1]: [6df3c971-b288-4b7e-893e-dcea2f2ef537] app/views/pins/index.html.erb:16:in `_app_views_pins_index_html_erb___1097567776692289569_70248207788000'

我做错了什么,因为 heroku 出现了这个错误,而不是 rails 应用程序。我有错字吗?您可以看到我将 AWS_BUCKET 命名为与我的 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']
  }
}

现在您正在寻找一个名为 'mypinterestingapp'ENV 变量,而您应该寻找 ENV['AWS_BUCKET'],但它不存在。

此外,我用一些通用占位符替换了上面代码示例中的实际凭据。在 SO 问题中 post 实际凭据从来不是一个好主意 ;)