Heroku:上传单个无版本文件

时间:2014-03-04 17:58:14

标签: ruby-on-rails git bash heroku

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

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

我的问题是我无法将此文件发送到我的heroku应用程序,因为它没有版本化,它不包含在部署中。此外,我正在使用Github,并且无法冒险在提交历史中公开我的密钥。

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

您是否知道如何在Heroku应用程序上实现无版本文件?

1 个答案:

答案 0 :(得分:2)

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

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

application.yml:

SECRET_KEY: my_secret_key
然后,费加罗有一个rake任务将这些推送到heroku:

rake figaro:heroku

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

heroku config:set SECRET_KEY=my_secret_key

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

ENV['SECRET_KEY']