我不确定从哪里开始。我正在创建一个与字典API接口的Ruby项目,并使用API密钥。我不希望任何人和他的叔叔能够看到这个密钥,但该项目必须在GitHub上托管。我怎样才能这样做,并从Ruby程序中访问密钥?
澄清:这是一个类,我们必须使用GitHub
答案 0 :(得分:3)
通常,你会把这些东西放在这样的文件中:
DICTIONARY_API=key_goes_here
并签入仅包含空格的文件版本(名为.example
或.sample
或其他内容):
DICTIONARY_API=
或者您可以使用ENV
从环境中读取密钥。如果你在Heroku上主持,建议这样做。另请参阅Dotenv
gem和ENVied
gem。
我已经看到两种方法结合起来(特别是在使用Dotenv
时),为本地/非heroku使用.env文件,并在Heroku上使用Heroku的配置设置。
答案 1 :(得分:0)
使用费加罗宝石。 Documentation
基本上,您将使用名为application.yml的文件并存储环境变量。仔细检查application.yml是否列在.gitignore文件中,这样任何人都无法在github上查看它。
您可以设置:
# application.yml
API_KEY: my_api_key_here
然后您可以将其设置为应用中的另一个变量:
# anywhere in your app
api_key = ENV['API_KEY']
对于制作,您可以使用Figaro的命令将您的env变量与Heroku同步。