module Aws::Checksums
@api private
Constants
- CHUNK_SIZE
Public Class Methods
md5(value)
click to toggle source
@param [File, Tempfile, IO#read, String] value @return [String<MD5>]
# File lib/aws-sdk-core/checksums.rb, line 28 def md5(value) if (File === value || Tempfile === value) && !value.path.nil? && File.exist?(value.path) Base64.encode64(OpenSSL::Digest::MD5.file(value).digest).strip elsif value.respond_to?(:read) md5 = OpenSSL::Digest::MD5.new update_in_chunks(md5, value) Base64.encode64(md5.digest).strip else Base64.encode64(OpenSSL::Digest::MD5.digest(value)).strip end end
sha256_hexdigest(value)
click to toggle source
@param [File, Tempfile, IO#read, String] value @return [String<SHA256 Hexdigest>]
# File lib/aws-sdk-core/checksums.rb, line 14 def sha256_hexdigest(value) if (File === value || Tempfile === value) && !value.path.nil? && File.exist?(value.path) OpenSSL::Digest::SHA256.file(value).hexdigest elsif value.respond_to?(:read) sha256 = OpenSSL::Digest::SHA256.new update_in_chunks(sha256, value) sha256.hexdigest else OpenSSL::Digest::SHA256.hexdigest(value) end end
Private Class Methods
update_in_chunks(digest, io)
click to toggle source
# File lib/aws-sdk-core/checksums.rb, line 42 def update_in_chunks(digest, io) while chunk = io.read(CHUNK_SIZE) digest.update(chunk) end io.rewind end