在包括rails5.1和这个版本之前,使用secrets.yml保存一些密码,而在rails5.2版本开始使用credentials保存文件密码,rails5.2新增的文件包括

credentials.yml.enc #包括一些密码,包括阿里云的密码,secret_key_base等内容
master.key #对credentials.yml.enc文件加密的密码,不能公开,必须添加到.gitignore文件中

打开credentials.yml.enc的方式

EDITOR="vim" rails credentials:edit

credentials.yml.enc的内容参考

development:
  aws:
    access_key_id: 123
    secret_access_key: 345

production:
  aws:
    access_key_id: 123
    secret_access_key: 345

secret_key_base: 14abb35c3e27e6dd5feb476f11aa63d026e7bb6f72ad4df5d39475261cf4525

master.key的内容

#默认是一串密码就行,也可以写成如下的形式
RAILS_MASTER_KEY=123

在rails console中获取credentials.yml.enc的密码内容

#rails console
Rails.application.credentials.development[:aws][:access_key_id] #123
Rails.application.credentials.secret_key_base #14abb35c3e27e6dd5feb476f11aa63d026e7bb6f72ad4df5d39475261cf4525

在系统中获取credentials.yml.enc的密码内容

#dig是获取多层嵌套的hash值
<%= Rails.application.credentials.dig(:development, :aws, :access_key_id) %>

results matching ""

    No results matching ""