Description
Client can specify the "Content-MD5" header to verify the integrity of the object as part of the upload process.
If the Content-MD5 does not match with the calculated md5, should throw BadDigest.
See: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
Since S3G already supports ETag which uses md5 hash of the object content, we can reuse it.
Note: If there is a BadDigest, we might need to clean up the data already written.