Using s3 range request with localstack causes incorrect content type to be returned & some metadata to be missing:
To reproduce, put object:
`aws s3api put-object --endpoint http://localhost:3006 --bucket some-bucket --key some-dir/some-key --body text.txt --content-type text/plain --content-language en-US --cache-control no-cache`

And compare regular request vs range one:
`aws s3api get-object --endpoint http://localhost:3006 --bucket some-bucket --key some-dir/some-key output.txt --range bytes=0-3`
`aws s3api get-object --endpoint http://localhost:3006 --bucket some-bucket --key some-dir/some-key output.txt`

This works correctly (returns the same metadata regardless of using `--range bytes=0-3`) on aws s3.

Also:
Getting object with/without `range bytes=0-3` should return header "AcceptRanges: bytes" but it doesn't.
@staticmethod
    def is_s3_copy_request(headers, path):
        return 'x-amz-copy-source' in headers or 'x-amz-copy-source' in path
    @staticmethod
    def get_201_response(key, bucket_name):
        return """
                <PostResponse>
                    <Location>{protocol}://{host}/{encoded_key}</Location>
                    <Bucket>{bucket}</Bucket>
                    <Key>{key}</Key>
                    <ETag>{etag}</ETag>
                </PostResponse>
                """.format(
            protocol=get_service_protocol(),
            host=config.HOSTNAME_EXTERNAL,
            encoded_key=urlparse.quote(key, safe=''),
            key=key,
            bucket=bucket_name,
            etag='d41d8cd98f00b204e9800998ecf8427f',
        )
    @staticmethod
    def _update_location(content, bucket_name):