我正在为一个新的应用程序设置活动存储器,在设置了我的亚马逊凭证之后,还没有能够让该应用程序在生产中运行。
credentials.yaml.enc
桶凭证RAILS_MASTER_KEY
env变量添加到Heroku中。config.active_storage.service = :amazon
行添加到我的production.rb中。config.require_master_key = true
添加到了我的production.rb中当我尝试在Heroku上运行我的应用程序时,它不会加载。执行$ Heroku运行rails控制台会给我带来错误:
"/app/vendor/bundle/ruby/2.3.0/gems/aws-sigv4-1.0.2/lib/aws-sigv4/signer.rb:517:in `extract_credentials_provider': Cannot load `Rails.config.active_storage.service`: (Aws::Sigv4::Errors::MissingCredentialsError)
missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider"
据我所知,我已经按照Rails 5.2所期望的方式设置了凭据。我试过各种资产预编译的东西,但都没有用。当我尝试将我的amazon凭据添加为env时。在Heroku的变量中,该应用程序在生产中运行良好。知道这里会出什么问题吗?
发布于 2018-06-01 14:32:15
是因为您忘记将config.require_master_key = true
添加到production.rb
中吗?
发布于 2018-05-17 02:42:36
我以前有过这个问题,好像是Heroku上的一个bug。
您应该通过设置选项卡上的Heroku仪表板设置您的环境变量。
然后您可以使用ENV‘’NAME_OF_ you _VARIABLE‘访问它。
这解决了我的问题。
还可以很好地检查您的Heroku日志,方法是滚动以确保安装了所有的宝石。
发布于 2018-06-15 13:56:41
再次检查您的config/credentials.yml.enc
文件中是否有正确的密钥。我有一个倒置键-- secret_key_access
而不是secret_access_key
,并且得到了同样的错误。修正了config/credentials.yml.enc
中的密钥名,为我修复了它。
在rails控制台(本地)中,运行:Rails.application.credentials.dig(:aws, :access_key_id)
和Rails.application.credentials.dig(:aws, :secret_access_key)
以确保它们有值。
https://stackoverflow.com/questions/50365348
复制相似问题