':type fp: file
:param fp: File pointer to the file to MD5 hash.  The file
pointer will be reset to the same position before the
method returns.
:type size: int
:param size: (optional) The Maximum number of bytes to read
from the file pointer (fp). This is useful when uploading
a file in multiple parts where the file is being split
in place into different parts. Less bytes may be available.'

def compute_md5(self, fp, size=None):

    (hex_digest, b64_digest, data_size) = compute_md5(fp, size=size)
    self.size = data_size
    return (hex_digest, b64_digest)
