ruby-on-rails - 部署到 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 上毫无问题地看到它们。
到目前为止我找不到任何解决方案。有没有办法解决这个问题?
提前谢谢了,
最好的
解决方案
推荐阅读
- shopify - CartJS.cart.items 在添加项目后不更新
- c++ - “转换”:不是“标准”的成员
- python - 发布删除特定行,将 .txt 转换为 .csv,并在 Python 中使用制表符分隔列
- c# - Unity3d:定位一个游戏对象,使其与其他两个游戏对象形成一个直角三角形
- java - 尝试调用虚拟方法 'android.text.Editable android.widget.EditText.getText()'
- sql - psql -f 命令不适用于指定的文件名路径
- node.js - package.json 语法错误
- r - 删除所有重复的列
- java - 使用 Eclipse 和 Apache Tomcat 9.0 开发环聊聊天机器人
- c - 使用 argv[] 时,我的代码不接受命令行参数