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`
""" Class to handle putting with urllib """
    def __init__(self, *args, **kwargs):
        return Request.__init__(self, *args, **kwargs)
    def get_method(self, *args, **kwargs):
        return 'PUT'
class S3ListenerTest(unittest.TestCase):
    def setUp(self):
        self.s3_client = aws_stack.connect_to_service('s3')
        self.sqs_client = aws_stack.connect_to_service('sqs')
    def test_create_bucket_via_host_name(self):
        body = """<?xml version="1.0" encoding="UTF-8"?>
            <CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
                <LocationConstraint>eu-central-1</LocationConstraint>
            </CreateBucketConfiguration>"""
        headers = aws_stack.mock_aws_request_headers('s3')
        bucket_name = 'test-%s' % short_uid()
        headers['Host'] = '%s.s3.amazonaws.com' % bucket_name
        response = requests.put(config.TEST_S3_URL, data=body, headers=headers, verify=False)
        self.assertEquals(response.status_code, 200)
        response = self.s3_client.get_bucket_location(Bucket=bucket_name)
        self.assertEqual(response['ResponseMetadata']['HTTPStatusCode'], 200)
        self.assertIn('LocationConstraint', response)
    def test_bucket_policy(self):