Ruby 在服务器上放置Twitter应用程序的API密钥的位置
我目前正在使用Twitter gem for Ruby为我的朋友编写两个Twitter机器人。我的计划是将它们的密钥存储在一个.txt文件中,并将bot的其余代码存储在我的服务器上,但我读到的所有内容都表明,这些密钥在代码中不应该是可读的。这是否足够安全?如果不安全,什么是好的解决方案?谢谢 一种常见的方法是将环境变量保存到名为Ruby 在服务器上放置Twitter应用程序的API密钥的位置,ruby,security,twitter,server,directory-structure,Ruby,Security,Twitter,Server,Directory Structure,我目前正在使用Twitter gem for Ruby为我的朋友编写两个Twitter机器人。我的计划是将它们的密钥存储在一个.txt文件中,并将bot的其余代码存储在我的服务器上,但我读到的所有内容都表明,这些密钥在代码中不应该是可读的。这是否足够安全?如果不安全,什么是好的解决方案?谢谢 一种常见的方法是将环境变量保存到名为.env的文件中,该文件被版本控制忽略(因此不会包含在Github中),但由代码读取。有一个宝石可以帮助你做到这一点 将.env添加到.gitignore文件中 创建一个
.env
的文件中,该文件被版本控制忽略(因此不会包含在Github中),但由代码读取。有一个宝石可以帮助你做到这一点
.env
添加到.gitignore
文件中.env
文件需要“dotenv”
并将dotenv.load
放在脚本开头的某个地方。在Rails中,require
是不必要的,您可以将加载调用放在config/initializers
文件夹中的任何文件中ENV
散列中找到李>
- 看
- 像heroku这样的一些平台有不同的机制来设置环境变量,例如
或web UIheroku config:set
- 可以使用bash中的
命令一次性设置环境变量,例如:env
这可以提供一种快速配置程序的方法,而无需进行参数解析。例如,在Rails中,您可以说env a=hello b=' world' ruby -e 'puts ENV["a"] + ENV["b"]' # => hello world
以使用测试环境打开控制台,但是Rails c test
应该做同样的事情env Rails\u env=test Rails c
env[“TWITTER\u API”]
@maxpleaner我正在使用Debian 9微滴DigitalOcean@icemelt环境变量是绑定到目录还是存在于整个服务器上?请原谅,我对Unix/Linux还是相当陌生的。它与服务器有关