### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Note: I create this bug as I didn't get an answer in another related [issue](https://github.com/localstack/localstack/issues/98#issuecomment-929993979) (#98).

After restarting localstorage, when I do a S3 getObject of a file, it gives me the file with some extra chunk-signature data. Example: 
```json
1e5;chunk-signature=83a45ce7e9db52171538036b946102068a9f2005c53049b23c63515f1c048fbc
{ "test": "this is a test json" }
0;chunk-signature=bd812928970799e2d5d16a86900629155d7d38aba42ed2dcbc7d6559c364671f
```

### Expected Behavior

The behaviour expected is getting the object without the extra chunk-signature data as it breaks parsing the file after.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

In order to easily reproduce this bug, I've created a [repository](https://github.com/herrlegno/localstack-s3-signature-error).

# Steps:
* Create a s3 bucket named: test
* Run 1º test (the one with (Order(1) decorator)
* After the test has successfully passed, restart the localstack container.
* Run only the "extendsS3Object" (Order(2) decorator) test or download the file "test.json" from s3 through awscli.

The file will look like something like this:
```json
19;chunk-signature=f64cba77c6523187a1448fd7bd9cd739ce9d953c951af6fe34ac787b8b8f60d6
{"foo":"bar"}
0;chunk-signature=fcc672670aab469d7e23cd6eeea9cb5639feca2f065510bcfb77f057bb391c9b
```


### Environment

```markdown
- OS: Pengwin WSL (but also tried in a native ubuntu 20.10)
- LocalStack: latest
- AWS Java S3 Client: 1.11.73
```


### Anything else?

_No response_
return get_request_payment(bucket_name)
            if method == "PUT":
                return set_request_payment(bucket_name, data)
        if query == "lifecycle" or "lifecycle" in query_map:
            if method == "GET":
                return get_lifecycle(bucket_name)
            if method == "PUT":
                return set_lifecycle(bucket_name, data)
            if method == "DELETE":
                delete_lifecycle(bucket_name)
        if query == "replication" or "replication" in query_map:
            if method == "GET":
                return get_replication(bucket_name)
            if method == "PUT":
                return set_replication(bucket_name, data)
        if method == "DELETE" and validate_bucket_name(bucket_name):
            delete_lifecycle(bucket_name)
        path_orig_escaped = path_orig.replace("#", "%23")
        if modified_data is not None or headers_changed or path_orig != path_orig_escaped:
            data_to_return = not_none_or(modified_data, data)
            if modified_data is not None:
                headers["Content-Length"] = str(len(data_to_return or ""))
            return Request(
                url=path_orig_escaped,
                data=data_to_return,
                headers=headers,
                method=method,
            )
        return True
    def return_response(self, method, path, data, headers, response, request_handler=None):