Method: RightSupport::Net::S3Helper.get
- Defined in:
- lib/right_support/net/s3_helper.rb
.get(key, &blck) ⇒ String
Downloads data from S3 Bucket
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/right_support/net/s3_helper.rb', line 107 def self.get(key, &blck) return nil unless s3_enabled? object = bucket.key(key, true, &blck) return nil if object.nil? # don't decrypt/verify unencrypted values return object.data if object.["digest"].nil? ciphertext = object.data passphrase = "#{key}:#{master_secret}" plaintext = @encryptor.decrypt(:key=>passphrase, :value=>ciphertext) digest = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new, passphrase, plaintext) if digest == object.["digest"] return plaintext else raise "digest for key:#{key} in s3 does not match calculated digest." end end |