如何在 Ruby 上读取使用名为 rails-env-credentials 的 gem 创建的加密文件?

How I can read the encrypted file created with the gem called rails-env-credentials on Ruby?

我目前正在做一个项目,我必须加密 id 和密码,所以我决定使用名为 rails-env-credentials https://github.com/sinsoku/rails-env-credentials

的 gem

创建一些文件用于开发似乎没问题,但我无法在控制台或 Web 上读取文件。

我想这可能是因为我没有设置一些我没有想到的东西,或者我试图以错误的方式获取值。

用这样的命令rails env_credentials:edit -e development,我制作了config/credentials/development.yml.enc,其中加密了这个

的字符串
  aws:
    access_key_id: 123
    secret_access_key: 345

并且在 config/credentials/development.key 文件中,会自动创建类似这样的内容。

<rails secret key>

我希望通过调用它来获取文件的值。

Rails.application.credentials.aws

但我得到 nil

当我在控制台上执行 Rails.application.credentials 时,我得到了这样的结果。

#<ActiveSupport::EncryptedConfiguration:0x000055882a4965f8 
@key_path=#<Pathname:config/master-development.key>, 
@content_path=#Pathname:config/credentials-development.yml.enc>, 
@env_key="RAILS_MASTER_KEY_DEVELOPMENT", 
@raise_if_missing_key=false, @config={}, @options={}>

由于没有错误,我在同一个地方堆了好几天。 如果您有任何想法,请告诉我。 我真的很感激。

编辑****

在加密文件中,有这样的东西。 而且我想我试图像从哈希中获取值那样获取值,但我无法正确获取它。

我试过

很抱歉,但我不知道如何解决这个问题...

我必须用 master.key 做些什么吗?

这是读取凭据的方式

Rails.application.credentials.dig(:aws, :access_key_id)
Rails.application.credentials.dig(:aws, :secret_access_key)

读取凭据的简单方法

Rails.application.credentials.aws[:access_key_id]
Rails.application.credentials.aws[:secret_access_key]

如果您仍然卡在那里,那么这是读取凭据的方法

 Rails.application.credentials.config.dig(:aws, :access_key_id)
 Rails.application.credentials.config.dig(:aws, :secret_access_key)