Class: Aws::Plugins::S3Md5s::Handler Private

Inherits:
Seahorse::Client::Handler show all
Defined in:
lib/aws-sdk-core/plugins/s3_md5s.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Constant Summary collapse

OneMB =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

1024 * 1024

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Handler

#handler

Instance Method Summary collapse

Methods inherited from Seahorse::Client::Handler

#initialize, #inspect

Constructor Details

This class inherits a constructor from Seahorse::Client::Handler

Instance Method Details

#call(context) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



28
29
30
31
32
33
34
# File 'lib/aws-sdk-core/plugins/s3_md5s.rb', line 28

def call(context)
  body = context.http_request.body
  if body.size > 0
    context.http_request.headers['Content-Md5'] ||= md5(body)
  end
  @handler.call(context)
end

#md5(body) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



36
37
38
39
40
41
42
43
# File 'lib/aws-sdk-core/plugins/s3_md5s.rb', line 36

def md5(body)
  md5 = OpenSSL::Digest::MD5.new
  while chunk = body.read(OneMB)
    md5.update(chunk)
  end
  body.rewind
  Base64.encode64(md5.digest).strip
end