gpt4 book ai didi

ruby-on-rails - 在部署到 Heroku 时使用 Rails secrets.yml 而不将 key 暴露给公共(public) repo 的分步说明

转载 作者:行者123 更新时间:2023-12-04 06:06:21 25 4
gpt4 key购买 nike

我正在使用 Rails 4.1.1 和 ruby​​ 2.0.0

我目前已将我的 secrets.yml 文件忽略到我的 gitignore for github。

secret .yml

development:
secret_key_base: numb3r57ndl3tt3r5

test:
secret_key_base: differentnumbersandletters13531515

production:
secret_key_base: <%= ENV["SECRET_KEY_BASE'] %>

如果这个生产 key 是动态的,它是从哪里读取的?我们在哪里提供这些信息?这些信息如何在不访问 github 的情况下到达 heroku?

我的 heroku 应用程序设置中已经有一个 key 环境变量。
我认为它是在我使用 heroku_secrets gem https://github.com/alexpeattie/heroku_secrets 运行 rake 评论 rake heroku:secrets RAILS_ENV=production 时创建的

有人可以解释概念步骤,以及如何在不向公众公开 key 的情况下正确使用 secrets.yml 的实际步骤吗?

例如,如果您还可以为不同的 API 添加另一个 key ,那也将不胜感激。

我想了解解释中的步骤中发生了什么,而不是像“做这个,做这个,做这个”之类的东西。另外,如果有代码,请指定应该放入哪个文件,而不是仅仅提供代码,并假设读者仅根据代码就知道它的去向( 严厉地看一下heroku指南作者 )

谢谢! =]

最佳答案

如果您使用此 key <%= ENV["SECRET_KEY_BASE'] %>
在本地计算机上,您可以在 shell 中设置环境变量,例如(bash 或 zsh)

export SECRET_KEY_BASE="yourkeybasehere"

并模拟您在生产环境(但在本地机器上)运行,例如
RAILS_ENV=production rails s

但是,在 Heroku 上部署时,您可以通过运行 heroku config:set 来使用他们所谓的配置变量。您的应用程序的命令。
heroku config:set SECRET_KEY_BASE=yourkeybasehere

然后 Rails 应用程序会将这个配置变量填充到 secret.yml
production:
secret_key_base: yourkeybasehere

希望这能解释你需要理解的东西。

不过,如果您想玩和测试。
一种选择是尝试编辑您的 app/views/layouts/application.html.erb 文件并放置您要显示的配置变量,例如 USERNAME config var
<!DOCTYPE html>
<html>
<head>
<title><%= ENV['USERNAME'] %></title>
</head>
<body>

<%= yield %>

</body>
</html>

然后部署到heroku并运行
heroku config:set USERNAME=gwho
您应该在页面标题处看到“gwho”。

有关 Heroku 配置变量的更多详细信息: https://devcenter.heroku.com/articles/config-vars

有关 Rails 4.1 secrets.yml 的更多详细信息: http://edgeguides.rubyonrails.org/4_1_release_notes.html#config/secrets.yml

关于ruby-on-rails - 在部署到 Heroku 时使用 Rails secrets.yml 而不将 key 暴露给公共(public) repo 的分步说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25006650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com