目前,我把我用来访问environment.rb文件中的其他API等的密钥.这样,当我在本地运行时,以及在heroku上都可以使用它.
但是,我想开始通过github公开我的代码,这样我就可以得到一些帮助.
我需要做些什么来实现这一点,特别是我可以在本地测试并测试heroku.
似乎在heroku上有一种方法可以从命令行添加密钥,因此它们不需要驻留在ruby-on-rails应用程序中.但是对于本地发展呢?
您可以使用环境变量(heroku上的config vars)来存储API密钥,而不是将它们检入源代码.
对于我正在处理的项目,我使用了一个twitter-auth的分支,并将其更改为从env变量中读取客户端密钥和密钥:
http://github.com/dpmcnevin/twitter-auth/blob/ace5d60a8ed8121cca4c97ef30a0cd025b99bfe1/lib/twitter_auth.rb#L68
OAuth::Consumer.new( ENV['oauth_consumer_key'] || config['oauth_consumer_key'], ENV['oauth_consumer_secret'] || config['oauth_consumer_secret'], options )
然后我.rvmrc
在项目目录中设置我的密钥以供本地使用:
export oauth_consumer_key=xxxxxxxxxxxx export oauth_consumer_secret=xxxxxxxxxxxxxxxxxxx rvm ree@redactify
最后在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
然后只需确保你.rvmrc
在.gitignore
,然后你可以推送到github而不暴露任何API密钥.