when I try to upload a large file, localstack basically freezes (and eventually times out).  
But if the file is all `1` bytes it succeeds.

succeeds:
```bash
aws s3 --endpoint-url=http://localhost:4572 mb s3://testbucket
python -c "print '\x01'*10000000" > testfile
echo $(ls -ahl | grep testfile)
aws s3 --endpoint-url=http://localhost:4572 cp testfile s3://testbucket/testfile
```

fails:
```bash
aws s3 --endpoint-url=http://localhost:4572 mb s3://testbucket
python -c "print 'a'*10000000" > testfile
echo $(ls -ahl | grep testfile)
aws s3 --endpoint-url=http://localhost:4572 cp testfile s3://testbucket/testfile
```
so, for me, both the file content and its size determine if this triggers or not. 
I'm using the latest version `0.9.5`
bucket_name = 'test-%s' % short_uid()
        self.s3_client.create_bucket(Bucket=bucket_name)
        
        object_key = 'key-with-metadata'
        metadata = {'test_meta_1': 'foo', '__meta_2': 'bar'}
        self.s3_client.put_object(Bucket=bucket_name, Key=object_key, Metadata=metadata, Body='foo')
        metadata_saved = self.s3_client.head_object(Bucket=bucket_name, Key=object_key)['Metadata']
        self.assertEqual(metadata, metadata_saved)
        
        self._delete_bucket(bucket_name, [object_key])
    def test_range_header_body_length(self):
        
        object_key = 'sample.bin'
        bucket_name = 'test-%s' % short_uid()
        self.s3_client.create_bucket(Bucket=bucket_name)
        chunk_size = 1024
        with io.BytesIO() as data:
            data.write(os.urandom(chunk_size * 2))
            data.seek(0)
            self.s3_client.upload_fileobj(data, bucket_name, object_key)
        range_header = 'bytes=0-%s' % (chunk_size - 1)
        resp = self.s3_client.get_object(Bucket=bucket_name, Key=object_key, Range=range_header)
        content = resp['Body'].read()
        self.assertEquals(len(content), chunk_size)
        
        self._delete_bucket(bucket_name, [object_key])
    def test_s3_get_response_content_type_same_as_upload_and_range(self):