ruby-on-rails - Heroku:上传单个未版本化的文件

标签 ruby-on-rails git bash heroku

我有一个由 Heroku 托管的 Rails 4 应用程序。

鉴于我正在从事一个开源项目,有几个未版本化的文件包含 .gitignore 中列出的敏感信息。例如,我在应用程序的根目录下有一个 .secret 文件,其中包含用于加密 cookie 的 key 。我通过运行 rake secret 命令创建了这个文件。

我的问题是我无法将此文件发送到我的 heroku 应用程序,因为它没有版本控制,它不包含在部署中。此外,我正在使用 Github,不能冒险在提交历史记录中公开披露我的 key 。

我尝试使用 heroku run 命令创建文件(heroku run 'rake secret > .secret' 无济于事)。我尝试使用 heroku run bash 连接终端,但由于文件系统是临时的,所以当我退出终端时我的更改不会保留。

您知道如何在 Heroku 应用程序上实现非版本控制文件吗?

最佳答案

secret 数据( key 、密码等)应作为配置变量存储在 Heroku 上。然后通过代码中的 ENV 哈希访问它们。

如果你使用类似 figaro 的东西,您可以将这些变量放在 application.yml 中(不要提交文件)

应用程序.yml:

SECRET_KEY: my_secret_key

Figaro 然后有一个 rake 任务将这些推送到 heroku:

rake figaro:heroku

或者,您可以手动设置它们:

heroku config:set SECRET_KEY=my_secret_key

最后,在您的应用中访问它们:

ENV['SECRET_KEY']

关于ruby-on-rails - Heroku:上传单个未版本化的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179453/

相关文章:

ruby-on-rails - 用于备份和恢复数据库的 Rake 任务

bash - 如何仅将匹配 grep 的行存储到变量

java - Ruby on Rails 与 jRuby

ruby-on-rails - Rails 使用地理编码位置确定 elasticsearch 范围

git - 在不传输对象的情况下创建镜像 Git 存储库

git - 即使使用 key 验证进行设置,Git仍需要密码

linux - 如何使用 sudo 将输出重定向到我无权写入的位置?

python - 使用Unix工具处理文本: search and replace all text that are not between some lines

ruby-on-rails - 如何清理我的 Puma Logs?

git - 在 GitHub 中 merge 分支