class Secrets::S3
Public Class Methods
new(s3_client, kms_client, logger)
click to toggle source
# File lib/secrets_parser/s3.rb, line 12 def initialize(s3_client, kms_client, logger) @s3_client = s3_client @kms_client = kms_client @logger = logger end
Public Instance Methods
decrypt(io)
click to toggle source
# File lib/secrets_parser/s3.rb, line 30 def decrypt(io) @kms_client.decrypt(ciphertext_blob: io.read).plaintext end
download(filename)
click to toggle source
# File lib/secrets_parser/s3.rb, line 18 def download(filename) bucket_name, file = filename.split('/', 2) @logger.info "Downloading #{file} from #{bucket_name}" begin resp = @s3_client.get_object(bucket: bucket_name, key: file) resp.body rescue Aws::S3::Errors::NoSuchKey raise Secrets::Errors::NoSuchFile, "Secret file #{file} does not exist in #{bucket_name}" end end
logger()
click to toggle source
# File lib/secrets_parser/s3.rb, line 34 def logger @config.logger end