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