# Type of request: This is a ...

[x] bug report
[ ] feature request

# Detailed description

If I upload objects to my bucket I don't get a list of my objects back, using the listObjects method of the phpsdk.
This was fixed previously in 0.11 but it's broken again in 0.12.x [#3021](https://github.com/localstack/localstack/issues/3021)

## Expected behavior

listObjects should return the objects in my bucket/folder.

## Actual behavior

Only metadata is returned.

# Steps to reproduce

- docker-compose.yml

```
version: '3.7'

services:
  localstack:
    #image: localstack/localstack:0.11.0
    image: localstack/localstack:latest
    ports:
      - "4566:4566"
      - "8080:8080"
    environment:
      - SERVICES=s3
      - DATA_DIR=/tmp/localstack-test/data
      - DEBUG=1
      - USE_LIGHT_IMAGE=1
      - DOCKER_HOST=unix:///var/run/docker.sock
      - DEFAULT_REGION=eu-central-1
    volumes:
      - "${TMPDIR:-/tmp/localstack-test}:/tmp/localstack-test"
```

- test.php

```
<?php
require 'vendor/aws-autoload.php';

use Aws\S3\S3Client;

$config = [
	'credentials' => [
		'key'    => 'test-id',
		'secret' => 'test-secret',
	],
	'region' => 'eu-central-1',
	'version' => 'latest',
	'endpoint' => 'http://localhost:4566',
	'use_path_style_endpoint' => true,
];
$s3client = new S3Client($config);
$buckets = $s3client->listBuckets();
if (empty($buckets['Buckets'])) {
	$s3client->createBucket([
		'Bucket' => 'test',
	]);
	echo 'Bucket test created' . PHP_EOL;
} else {
	echo 'Bucket test exists' . PHP_EOL;
}

$s3client->upload('test', 'test.txt', 'test');
var_dump($s3client->listObjectsV2(['Bucket' => 'test']));
```
## Expected example

```
> php test.php
Bucket test exists

class Aws\Result#245 (2) {
  private $data =>
  array(7) {
    'IsTruncated' =>
    bool(false)
    'Contents' =>
    array(1) {
      [0] =>
      array(5) {
        ...
      }
    }
    'Name' =>
    string(4) "test"
    'Prefix' =>
    string(0) ""
    'MaxKeys' =>
    int(1000)
    'KeyCount' =>
    int(1)
    '@metadata' =>
    array(4) {
      'statusCode' =>
      int(200)
      'effectiveUri' =>
      string(38) "http://localhost:4566/test?list-type=2"
      'headers' =>
      array(9) {
        ...
      }
      'transferStats' =>
      array(1) {
        ...
      }
    }
  }
  private $monitoringEvents =>
  array(0) {
  }
}
```

## Actual

```
> php test.php
Bucket test exists

class Aws\Result#245 (2) {
  private $data =>
  array(1) {
    '@metadata' =>
    array(4) {
      'statusCode' =>
      int(200)
      'effectiveUri' =>
      string(38) "http://localhost:4566/test?list-type=2"
      'headers' =>
      array(16) {
        ...
      }
      'transferStats' =>
      array(1) {
        ...
      }
    }
  }
  private $monitoringEvents =>
  array(0) {
  }
}
```

ExpiresIn=EXPIRES
        )
        presign_get_url_v4 = client_v4.generate_presigned_url(
            'get_object',
            Params={'Bucket': BUCKET, 'Key': OBJECT_KEY, 'ResponseContentType': 'text/plain'},
            ExpiresIn=EXPIRES
        )
        
        response = requests.get(presign_get_url)
        self.assertEqual(response.status_code, 200)
        response = requests.get(presign_get_url_v4)
        self.assertEqual(response.status_code, 200)
        
        url = make_v2_url_invalid(presign_get_url)
        response = requests.get(url, data=OBJECT_DATA, headers={'Content-Type': 'my-fake-content/type'})
        self.assertEqual(response.status_code, 403)
        url = make_v4_url_invalid(presign_get_url_v4)
        response = requests.get(url, headers={'Content-Type': 'my-fake-content/type'})
        self.assertEqual(response.status_code, 403)
        
        presign_put_url = client.generate_presigned_url(
            'put_object',
            Params={'Bucket': BUCKET, 'Key': OBJECT_KEY},
            ExpiresIn=EXPIRES
        )
        presign_put_url_v4 = client_v4.generate_presigned_url(
            'put_object',
            Params={'Bucket': BUCKET, 'Key': OBJECT_KEY},
            ExpiresIn=EXPIRES
        )