When I "PUT" an object using a pre-signed by localstack S3 URL, the localstack responds with "Content Length: 233" and `<PutObjectResponse>...</PutObjectResponse>` XML in the body. 

When I run the same code against AWS S3, the content length is 0 and response body blank. Would be great if localstack matched the AWS S3 response.

Running the latest 0.9.3 localstack docker image.
from six.moves.urllib import parse as urlparse
from botocore.client import ClientError
from requests.models import Response, Request
from localstack import config
from localstack.constants import DEFAULT_REGION
from localstack.config import HOSTNAME, HOSTNAME_EXTERNAL
from localstack.utils import persistence
from localstack.utils.aws import aws_stack
from localstack.utils.common import (
    short_uid, timestamp, TIMESTAMP_FORMAT_MILLIS, to_str, to_bytes, clone, md5, get_service_protocol)
from localstack.utils.analytics import event_publisher
from localstack.services.generic_proxy import ProxyListener
from localstack.services.s3 import multipart_content
S3_NOTIFICATIONS = {}
BUCKET_CORS = {}
BUCKET_LIFECYCLE = {}
LOGGER = logging.getLogger(__name__)
XMLNS_S3 = 'http://s3.amazonaws.com/doc/2006-03-01/'
NOTIFICATION_DESTINATION_TYPES = ('Queue', 'Topic', 'CloudFunction', 'LambdaFunction')
def event_type_matches(events, action, api_method):
    """ check whether any of the event types in `events` matches the
        given `action` and `api_method`, and return the first match. """
    for event in events:
        regex = event.replace('*', '[^:]*')
        action_string = 's3:%s:%s' % (action, api_method)
        match = re.match(regex, action_string)
        if match:
            return match
    return False
def filter_rules_match(filters, object_path):