繁体   English   中英

我如何在 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={}>

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

编辑****

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

我试过类似的东西

在此处输入图像描述

我很抱歉,但我没有解决这个问题的想法......

我必须对 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM