略過內容 跳轉至搜尋

加密設定

提供 EncryptedFile 上的便利方法,用於存取以加密 YAML 儲存的值。

值可透過 Hash 方法 (例如 fetchdig) 或動態存取器方法存取,類似於 OrderedOptions

my_config = ActiveSupport::EncryptedConfiguration.new(...)
my_config.read # => "some_secret: 123\nsome_namespace:\n  another_secret: 456"

my_config[:some_secret]
# => 123
my_config.some_secret
# => 123
my_config.dig(:some_namespace, :another_secret)
# => 456
my_config.some_namespace.another_secret
# => 456
my_config.fetch(:foo)
# => KeyError
my_config.foo!
# => KeyError
命名空間
方法
C
N
R

類別公開方法

new(config_path:, key_path:, env_key:, raise_if_missing_key:)

# File activesupport/lib/active_support/encrypted_configuration.rb, line 54
def initialize(config_path:, key_path:, env_key:, raise_if_missing_key:)
  super content_path: config_path, key_path: key_path,
    env_key: env_key, raise_if_missing_key: raise_if_missing_key
  @config = nil
  @options = nil
end

執行個體公開方法

config()

Hash 的型態傳回已解密的內容,並將金鑰表示成符號。

my_config = ActiveSupport::EncryptedConfiguration.new(...)
my_config.read # => "some_secret: 123\nsome_namespace:\n  another_secret: 456"

my_config.config
# => { some_secret: 123, some_namespace: { another_secret: 789 } }
# File activesupport/lib/active_support/encrypted_configuration.rb, line 85
def config
  @config ||= deep_symbolize_keys(deserialize(read))
end

read()

讀取檔案並傳回已解密的內容。請參閱 EncryptedFile#read

# File activesupport/lib/active_support/encrypted_configuration.rb, line 62
def read
  super
rescue ActiveSupport::EncryptedFile::MissingContentError
  # Allow a config to be started without a file present
  ""
end