### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I'm implementing the second example, using the transferManager described here:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/example_s3_Scenario_UploadStream_section.html

```
        Long sizeOnS3;
        var key = dataSource.getObjectKey();

        S3TransferManager transferManager = S3TransferManager.builder()
                .s3Client(s3AsyncClient)
                .build();

        BlockingInputStreamAsyncRequestBody body =
                AsyncRequestBody.forBlockingInputStream(null);

        Upload upload = transferManager.upload(builder -> builder
                .requestBody(body)
                .putObjectRequest(req -> req.bucket(bucketName).key(key))
                .build());

        body.writeInputStream(dataSource.getDataStream());

        try {
            upload.completionFuture().get();
            sizeOnS3 = s3Client.headObject(b -> b.bucket(bucketName).key(dataSource.getObjectKey())).contentLength();
        } catch (Exception e) {
            log.error("Error while uploading file to S3", e);
            throw new RuntimeException(e);
        } finally {
            IOUtils.closeQuietly(dataSource.getDataStream());
        }
```

with the S3AsyncClient configure as such:

```
    @Bean
    public S3AsyncClient amazonAsyncS3Client(final Region region,
                                        final AwsCredentialsProvider awsCredentialsProvider,
                                        @Value("${application.aws.s3.uri}") final String maybeS3Uri) throws
            URISyntaxException {

        var s3ClientBuilder = S3AsyncClient.crtBuilder()
                .forcePathStyle(true)
                .region(region)
                .credentialsProvider(awsCredentialsProvider);

        if (StringUtils.isNotBlank(maybeS3Uri)) {
            s3ClientBuilder.endpointOverride(new URI(maybeS3Uri));
        }

        return s3ClientBuilder.build();
    }
```

The upload is successful but some extra data seems to be added before and after the original content:

original content (csv fetched from an API):

`MyData`

Content that I get if I fetch it again:

```
503
MyData

0
x-amz-checksum-crc32:e4f9zQ==
```

Deploying on AWS this extra content doesn't appear so it is my assumption that it is coming from localstack

### Expected Behavior

No extra information is added to the S3 file content other than the original data

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

docker-compose

  localstack:
    image: localstack/localstack:3.0.2
    ports:
      - "4566:4566" # Default port forward
    healthcheck:
      test: [ "CMD", "awslocal", "s3api", "wait", "bucket-exists", "--bucket", "stored-files" ]
      interval: 10s
      timeout: 5s
      retries: 20
    environment:
      - SERVICES=s3,sts
      - DEBUG=1
      - LAMBDA_REMOTE_DOCKER=0
      - DATA_DIR=/tmp/localstack/data
      - DEFAULT_REGION=eu-west-1
    volumes:
      - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
      - '/var/run/docker.sock:/var/run/docker.sock'
      - "./data/localstack/init.sh:/etc/localstack/init/ready.d/init.sh"


### Environment

```markdown
- OS:macOs 14.1.2
- LocalStack: 3.0.2
```


### Anything else?

_No response_
"StorageClass": StorageClass.STANDARD,
                "Metadata": {"foo": "bar-complicated-no-random"},
            },
        )
        assert StorageClass.STANDARD not in url
        assert "bar-complicated-no-random" not in url
        handler_file = os.path.join(
            os.path.dirname(__file__), "../lambda_/functions/lambda_s3_integration_presign.js"
        )
        temp_folder = create_tmp_folder_lambda(
            handler_file,
            run_command="npm i @aws-sdk/util-endpoints @aws-sdk/client-s3 @aws-sdk/s3-request-presigner @aws-sdk/middleware-endpoint",
        )
        function_name = f"func-integration-{short_uid()}"
        create_lambda_function(
            func_name=function_name,
            zip_file=testutil.create_zip_file(temp_folder, get_content=True),
            runtime=Runtime.nodejs14_x,
            handler="lambda_s3_integration_presign.handler",
            role=lambda_su_role,
            envvars={
                "ACCESS_KEY": TEST_AWS_ACCESS_KEY_ID,
                "SECRET_KEY": TEST_AWS_SECRET_ACCESS_KEY,
            },
        )
        s3_create_bucket(Bucket=function_name)
        response = aws_client.lambda_.invoke(FunctionName=function_name)
        presigned_url = response["Payload"].read()
        presigned_url = json.loads(to_str(presigned_url))["body"].strip('"')
        # asse