Hello guys. I use S3 preSigned URL to upload file, but it return an error "The Content-MD5 you specified was invalid".
It happens only when I generate Presigned Url with contentMd5.However it works fine when I annotation the line '.withContentMd5(md5)'.
My file md5 is 32c295626872e465b3d0b590eb8e88a7.

```java
        AmazonS3 s3client = getDefaultS3Client();
        Date expiration = new Date(System.currentTimeMillis() + expiratMillis);
        GeneratePresignedUrlRequest generatePresignedUrlRequest =
                new GeneratePresignedUrlRequest(bucketName, s3FullPath)
                        .withMethod(HttpMethod.PUT)
                        .withExpiration(expiration)
                        .withKey(s3Key)
                        .withContentMd5(md5);
        String presignedUrl =  s3client.generatePresignedUrl(generatePresignedUrlRequest);
 ```


![postman](https://user-images.githubusercontent.com/4321439/60160341-bdfafd80-9827-11e9-8a26-03ec4c4d8faf.png)

Does S3 support checksum when using presigned url?
Could anybody give me a piece of advice to help me solve this? Thank you!
stream = data['StreamSpecification']
    enabled = stream.get('StreamEnabled')
    if enabled not in [False, 'False']:
        table_name = data['TableName']
        view_type = stream['StreamViewType']
        dynamodbstreams_api.add_dynamodb_stream(table_name=table_name,
            latest_stream_label=latest_stream_label, view_type=view_type, enabled=enabled)
def forward_to_lambda(records):
    for record in records:
        sources = lambda_api.get_event_sources(source_arn=record['eventSourceARN'])
        event = {
            'Records': [record]
        }
        for src in sources:
            lambda_api.run_lambda(event=event, context={}, func_arn=src['FunctionArn'])
def forward_to_ddb_stream(records):
    dynamodbstreams_api.forward_events(records)
def dynamodb_extract_keys(item, table_name):
    result = {}
    if table_name not in TABLE_DEFINITIONS:
        LOGGER.warning('Unknown table: %s not found in %s' % (table_name, TABLE_DEFINITIONS))
        return None
    for key in TABLE_DEFINITIONS[table_name]['KeySchema']:
        attr_name = key['AttributeName']
        if attr_name not in item:
            return error_response(error_type='ValidationException',
                message='One of the required keys was not given a value')
        result[attr_name] = item[attr_name]
    return result
def error_response(message=None, error_type=None, code=400):