如何使用 Sinatra gem 和 Ruby 隐藏 API 密钥

Lei*_*ana 3 ruby api rubygems environment-variables sinatra

我是一名初级程序员,目前正在练习 Sinatra gem。

我的项目之一是一个简单的天气应用程序,它可以告诉用户不同城市的天气。现在我想隐藏我一直在使用的 API 密钥,因为我想将此网站上传到 Heroku。我该如何去做呢?我知道我需要一个 config.yml 文件。这要去哪里?是否需要进入某个文件夹?

就像将其粘贴到 config.yml 文件中一样简单吗?

    weather_api_key: *api key here*
Run Code Online (Sandbox Code Playgroud)

我需要在 server.rb 文件中添加任何其他命令吗?有人可以在这里给我任何指示吗?

mag*_*ni- 5

有几种方法可以做到这一点。

一种是使用一个文件,将其添加到 gitignore 中,另一种是使用环境变量,然后在配置文件中引用该变量:

~/.bash_profile

export WEATHER_API_KEY=*api key here*
Run Code Online (Sandbox Code Playgroud)

config.yml

WEATHER_API_KEY: <%= ENV['WEATHER_API_KEY'] %>
Run Code Online (Sandbox Code Playgroud)

您需要手动刷新 bash 设置 ( . ~/.bash_profile),或者关闭终端窗口并打开一个新窗口,以便正确设置环境变量。