The form POST operation to S3 accepts a `success_action_status` field which can be set to 200/201/204, see [here](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html). Localstack currently handles the `success_action_redirect` field [here](https://github.com/localstack/localstack/blob/master/localstack/services/s3/s3_listener.py#L518) and so we should look into handling the `success_action_status` field too.

The 201 from AWS responds with an XML document with some fields about the object that has just been created in AWS, see below.

```
<PostResponse>
    <Location>https://s3.amazonaws.com/link-to-the-file</Location>
    <Bucket>s3-bucket</Bucket>
    <Key>development/8614bd40-691b-4668-9241-3b342c6cf429/image.jpg</Key>
    <ETag>"32-bit-tag"</ETag>
</PostResponse>
```
bucket_name = normalize_bucket_name(bucket_name)
    lock_config = OBJECT_LOCK_CONFIGS.get(bucket_name)
    status_code = 200
    if not lock_config:
        
        lock_config = {
            'Error': {
                'Code': 'ObjectLockConfigurationNotFoundError',
                'Message': 'Object Lock configuration does not exist for this bucket'
            }
        }
        status_code = 404
    body = xmltodict.unparse(lock_config)
    return requests_response(body, status_code=status_code)
def set_lifecycle(bucket_name, lifecycle):
    bucket_name = normalize_bucket_name(bucket_name)
    
    if isinstance(to_str(lifecycle), six.string_types):
        lifecycle = xmltodict.parse(lifecycle)
    BUCKET_LIFECYCLE[bucket_name] = lifecycle
    return 200
def set_replication(bucket_name, replication):
    bucket_name = normalize_bucket_name(bucket_name)
    
    if isinstance(to_str(replication), six.string_types):
        replication = xmltodict.parse(replication)
    BUCKET_REPLICATIONS[bucket_name] = replication
    return 200
def set_encryption(bucket_name, encryption):