Tim*_* T. 8 ruby-on-rails github heroku
目前,我把我用来访问environment.rb文件中的其他API等的密钥.这样,当我在本地运行时,以及在heroku上都可以使用它.
但是,我想开始通过github公开我的代码,这样我就可以得到一些帮助.
我需要做些什么来实现这一点,特别是我可以在本地测试并测试heroku.
似乎在heroku上有一种方法可以从命令行添加密钥,因此它们不需要驻留在ruby-on-rails应用程序中.但是对于本地发展呢?
Dan*_*vin 16
您可以使用环境变量(heroku上的config vars)来存储API密钥,而不是将它们检入源代码.
对于我正在处理的项目,我使用了一个twitter-auth的分支,并将其更改为从env变量中读取客户端密钥和密钥:
OAuth::Consumer.new(
ENV['oauth_consumer_key'] || config['oauth_consumer_key'],
ENV['oauth_consumer_secret'] || config['oauth_consumer_secret'],
options
)
Run Code Online (Sandbox Code Playgroud)
然后我.rvmrc
在项目目录中设置我的密钥以供本地使用:
export oauth_consumer_key=xxxxxxxxxxxx
export oauth_consumer_secret=xxxxxxxxxxxxxxxxxxx
rvm ree@redactify
Run Code Online (Sandbox Code Playgroud)
最后在heroku上设置环境变量:
$ heroku config:add oauth_consumer_key=xxxxxxxxxxxxx
$ heroku config:add oauth_consumer_secret=xxxxxxxxxxxxx
$ heroku config
DATABASE_URL => postgres://.....
RACK_ENV => production
oauth_consumer_key => xxxxxxxxxxxxxxxx
oauth_consumer_secret => xxxxxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
然后只需确保你.rvmrc
在.gitignore
,然后你可以推送到github而不暴露任何API密钥.
将它们移至初始值设定项并将文件添加到 .gitignore
编辑:
config中有一个名为initializers的目录。您可以在此处放置应在应用程序启动时运行一次的代码。过去,environment.rb 用于这些设置,但初始化程序可以更好地组织事情。我会在初始化目录中创建一个名为“load_keys.rb”的文件或类似的文件。在此文件中,您可以将您不希望在 github 中使用的environment.rb 文件中的确切代码放入其中。
归档时间: |
|
查看次数: |
2693 次 |
最近记录: |