# Bug report

# Detailed description

The `AWS.s3.upload()` (official SDK - https://github.com/aws/aws-sdk-js) returns an object with the `Location` key that points to 4566 instead of 4572 (LocalStack S3 port).

## Expected behavior

The `Location` should point to the file on S3.

Example:

```
Location: http://localhost:4572/path/to/bucket.txt
```

## Actual behavior

The `Location` points to the LocalStack entrypoint.

Example:

```
Location: http://localhost:4566/path/to/bucket.txt
```

# Steps to reproduce

- Upload a file to S3 using the official AWS SDK (https://github.com/aws/aws-sdk-js).
- Check out the `Location` property.

## Client code

```javascript
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
  region: 'us-west-1',
  endpoint: 'http://localhost:4566',
  apiVersion: '2006-03-01',
  s3ForcePathStyle: true,
});

(async () => {
  await s3
    .createBucket({ Bucket: 'my-bucket', ACL: 'private' })
    .promise();

  const { Location } = await s3
    .upload({ Key: 'file.txt', Body: 'test', Bucket: 'my-bucket' })
    .promise();

  console.assert(Location === 'http://localhost:4572/my-bucket/file.txt');
})();
```
zip_file=python3_with_settings2,
                                            runtime=LAMBDA_RUNTIME_PYTHON36,
                                            handler='handler2.handler')
            result1 = self.lambda_client.invoke(FunctionName=lambda_name1, Payload=b'{}')
            result_data1 = result1['Payload'].read()
            result2 = self.lambda_client.invoke(FunctionName=lambda_name2, Payload=b'{}')
            result_data2 = result2['Payload'].read()
            self.assertEqual(result1['StatusCode'], 200)
            self.assertIn('setting1', to_str(result_data1))
            self.assertEqual(result2['StatusCode'], 200)
            self.assertIn('setting2', to_str(result_data2))
            
            testutil.delete_lambda_function(lambda_name1)
            testutil.delete_lambda_function(lambda_name2)
        finally:
            lambda_api.DO_USE_DOCKER = original_do_use_docker
    def test_lambda_subscribe_sns_topic(self):
        function_name = '{}-{}'.format(TEST_LAMBDA_FUNCTION_PREFIX, short_uid())
        testutil.create_lambda_function(handler_file=TEST_LAMBDA_ECHO_FILE,
                                        func_name=function_name, runtime=LAMBDA_RUNTIME_PYTHON36)
        topic = self.sns_client.create_topic(
            Name=TEST_SNS_TOPIC_NAME
        )
        topic_arn = topic['TopicArn']
        self.sns_client.subscribe(
            TopicArn=topic_arn,
            Protocol='lambda',
            Endpoint=lambda_api.func_arn(function_name),
        )
        subject = '[Subject] Test subject'