### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I am storing a gzipped file in an S3 bucket. When retrieving the contents, I expect to have to decode the response. However, once I updated to `2.0.1` I am finding that the response already has the gzipped content decoded. 

The following is the response when localstack is run in `legacy` mode. Note the payload reflects the uncompressed contents and the `Content-Length` header reflects the length of the compressed content (ie. the length before it is decompressed).

```bash
$> wget -q -S -O - https://originaluploads.dev.mydomain.com/2023/4/13/79012447-af8a-4732-8595-b378d9ddb8ac/original_upload.gpx
  HTTP/1.1 200 
  Server: nginx/1.22.1
  Date: Thu, 13 Apr 2023 21:35:21 GMT
  Content-Type: application/gpx+xml
  Content-Length: 484
  Connection: keep-alive
  x-amz-version-id: 721618c3-d9d2-42bd-b433-c0530c4e3a09
  cache-control: no-cache
  content-encoding: gzip
  ETag: "1d1f83feb12d0f0185a12bb7909b3955"
  last-modified: Thu, 13 Apr 2023 21:34:31 GMT
  x-amz-server-side-encryption: AES256
  x-amz-server-side-encryption-bucket-key-enabled: false
  x-amzn-requestid: zeRF2ZIh8iI5WgtR21aoNDIMAgxatwkKndFENfFQc1dfl7tqffx4
  Access-Control-Allow-Credentials: true
  x-amz-request-id: 5BC4A0ADB1AC8913
  x-amz-id-2: MzRISOwyjmnup5BC4A0ADB1AC89137/JypPGXLh0OVFGcJaaO3KW/hRAqKOpIEEp
  accept-ranges: bytes
  content-language: en-US
gu8d͕ˎ�0��y%����\����AZm�5KX�^
...
$>
```

The following is what I get when I disable the legacy mode and use 2.0.1's new S3 provider. I have uploaded the same file (even though the file path is different in this second run). Note how that the payload is now the uncompressed file and the `Content-Length` value reflects the uncompressed file content length:
 
```bash
$> wget -q -S -O - https://originaluploads.dev.mydomain.com/2023/4/13/e01bcd66-f84b-44af-b4ba-5f6819a22ff2/original_upload.gpx
  HTTP/1.1 200 
  Server: nginx/1.22.1
  Date: Thu, 13 Apr 2023 21:29:22 GMT
  Content-Type: application/gpx+xml
  Content-Length: 1630
  Connection: keep-alive
  accept-ranges: bytes
  Last-Modified: Thu, 13 Apr 2023 21:11:33 GMT
  ETag: "de859a1f6072e5582b5877dc6fb278b2"
  x-amz-version-id: c025335d-b74a-4f01-b36a-67a378338145
  Cache-Control: no-cache
  Content-Encoding: gzip
  x-amz-server-side-encryption: AES256
  x-amz-server-side-encryption-bucket-key-enabled: false
  x-amz-request-id: 8WKX4I040PZOR9HC5S41CMBK7VQEVHSNN1OPEV8AZ7WP4JECHPEZ
  x-amz-id-2: MzRISOwyjmnup8WKX4I040PZOR9HC5S41CMBK7VQEVHSNN1OPEV8AZ7WP4JECHPEZ7/JypPGXLh0OVFGcJaaO3KW/hRAqKOpIEEp
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="Apple Health Export" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
...
$>
```



### Expected Behavior

The S3 requests should be returning the compressed payload and relying on the client to do the decompression. 

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

docker-compose.yml

### Environment

```markdown
- OS: official Docker image
- LocalStack: 2.0.1
```


### Anything else?

_No response_
import re
import shutil
import tempfile
import time
from io import BytesIO
from operator import itemgetter
from typing import TYPE_CHECKING
from urllib.parse import SplitResult, parse_qs, quote, urlencode, urlparse, urlunsplit
from zoneinfo import ZoneInfo
import boto3 as boto3
import pytest
import 
import xmltodict
from boto3.s3.transfer import KB, TransferConfig
from botocore import UNSIGNED
from botocore.auth import SigV4Auth
from botocore.client import Config
from botocore.exceptions import ClientError
from localstack import config, constants
from localstack.aws.api.s3 import StorageClass
from localstack.config import LEGACY_S3_PROVIDER
from localstack.constants import (
    LOCALHOST_HOSTNAME,
    S3_VIRTUAL_HOSTNAME,
    TEST_AWS_ACCESS_KEY_ID,
    TEST_AWS_SECRET_ACCESS_KEY,
)
from localstack.services.awslambda.lambda_utils import (
    LAMBDA_RUNTIME_NODEJS14X,
    LAMBDA_RUNTIME_PYTHON39,