### 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_
next_continuation_token = to_str(base64.urlsafe_b64encode(s3_object.key.encode()))
                break
            
            
            if prefix_including_delimiter:
                common_prefixes.add(prefix_including_delimiter)
            else:
                
                object_data = Object(
                    Key=key,
                    ETag=s3_object.quoted_etag,
                    Size=s3_object.size,
                    LastModified=s3_object.last_modified,
                    StorageClass=s3_object.storage_class,
                )
                if fetch_owner:
                    object_data["Owner"] = s3_bucket.owner
                if s3_object.checksum_algorithm:
                    object_data["ChecksumAlgorithm"] = [s3_object.checksum_algorithm]
                s3_objects.append(object_data)
            
            count += 1
        common_prefixes = [CommonPrefix(Prefix=prefix) for prefix in sorted(common_prefixes)]
        response = ListObjectsV2Output(
            IsTruncated=is_truncated,
            Name=bucket,
            MaxKeys=max_keys,
            Prefix=prefix or "",
            KeyCount=count,
        )