保护 Git 托管的 Ruby 项目上的 API 密钥



我真的不确定从哪里开始。我正在制作一个与字典 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 同步。

最新更新