首页 > 解决方案 > 部署到 Heroku 时出现 aws 密钥错误 - ruby​​ on rails

问题描述

我半成功地部署了我的应用程序。但是,加载的图像存在问题。我可以看到我的应用程序并且可以通过它,除非有来自本地的图像...

我创建了一个存储桶 - S3 并将其实现到我的应用程序中,还下载了fog-aws 和 figaro gems。

像这样更改carriervawe.rb文件:

CarrierWave.configure do |config|

config.fog_provider = 'fog/aws' # required

config.fog_credentials = {

provider: 'AWS',                        # required

aws_access_key_id: ENV["AWS_ACCESS_KEY"],        # required

aws_secret_access_key: ENV["AWS_SECRET_KEY"],        # required

}

config.fog_directory = ENV["AWS_BUCKET"]              # required

end

更改头像上传器:


#storage :file

storage :fog

还在 application.yml 中添加了所有需要的信息,如下所示:

AWS_ACCESS_KEY: "-----"
AWS_SECRET_KEY: "-----"
AWS_BUCKET: "-----"

当我想运行figaro heroku:set -e production时,我收到此错误:

''[DEPRECATED] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env` (called at /Users/yektaturan/.rvm/gems/ruby-2.6.5/gems/figaro-1.2.0/lib/figaro/cli/task.rb:32)

▸    Usage: heroku config:set KEY1=VALUE1 [KEY2=VALUE2 ...]

▸    Must specify KEY and VALUE to set."

我提交了 Git 一切并尝试运行git push heroku master. 这次我收到这样的错误:


remote:  !
remote:  !     Precompiling assets failed.
remote:  !

当我检查问题的原因时,我看到了这个;

remote:        rake aborted!
remote:        ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key

还有在我的production.rb中;

  config.assets.compile = false

** 我通过heroku run bash和检查了本地图像ls/public/assets/。我可以在 bash 上毫无问题地看到它们。

到目前为止我找不到任何解决方案。有没有办法解决这个问题?

提前谢谢了,

最好的

标签: ruby-on-railsamazon-web-servicesheroku

解决方案


推荐阅读