我在heroku日志中收到此错误。我现在在亚马逊s3上创建一个新桶并添加我的密钥后收到此错误。我还将我的键/桶名称添加到heroku,如下所示:
dynamic_cast
还有我的rails app中的环境/ production.rb
=== 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
我在heroku日志中的错误:
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提出了这个错误,而不是rails应用程序。我有拼写错误吗?您可以看到我在我的production.rb中将AWS_BUCKET命名为完全相同。
答案 0 :(得分:0)
你需要:
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']
}
}
现在,当您应该查找不存在的ENV
时,您正在寻找名为'mypinterestingapp'
的{{1}}变量。
此外,我使用一些通用占位符替换了上面代码示例中的实际凭据。在SO问题中发布实际凭证绝不是一个好主意;)