Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XMLStreamException: ParseError at [row,col]:[1,1] when calling getObjectAttributes #4845

Closed
wcmatthysen opened this issue Jan 24, 2024 · 5 comments
Assignees
Labels
bug This issue is a bug. p3 This is a minor priority issue response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 10 days.

Comments

@wcmatthysen
Copy link

wcmatthysen commented Jan 24, 2024

Describe the bug

I'm running into the same exception as outlined in #4136 (that has been closed a while ago) when requesting an object's attributes. I'm attempting to retrieve the MD5Sum via the e-tag field. The block of code (as highlighted in the original issue) triggering the exception is:

 client.getObjectAttributes(GetObjectAttributesRequest.builder()
	.bucket(bucket)
	.key(key)
	.objectAttributes(ObjectAttributes.E_TAG)
	.build());

I'm not sure where exactly this bug slipped in for version 2, but if I use the latest version 1 of the SDK, and rework the code-sample listed in #4136 to be compatible with V1, then everything works as expected.

Expected Behavior

No exception should be thrown when calling the getObjectAttributes method.

Current Behavior

I get the following stacktrace:

Exception in thread "main" software.amazon.awssdk.core.exception.SdkClientException: Could not parse XML response.
        at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111)
        at software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:47)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:59)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.XmlResponseParserUtils.parse(XmlResponseParserUtils.java:64)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.parseResponse(AwsXmlPredicatedResponseHandler.java:116)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:96)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:93)
        at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:279)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:38)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:72)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:55)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:39)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:32)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
        at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:224)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:173)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:80)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:182)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:74)
        at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:53)
        at software.amazon.awssdk.services.s3.DefaultS3Client.getObjectAttributes(DefaultS3Client.java:5544)
        at com.example.s3.GetObjectAttributes.getObjectAttributes(GetObjectAttributes.java:82)
        at com.example.s3.GetObjectAttributes.main(GetObjectAttributes.java:68)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
        at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:604)
        at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:55)
        ... 41 more

Reproduction Steps

To reproduce I took the original source-code as outlined in #4136, but modified it a bit to allow for connecting to other servers (in my case I'm connecting to a local MinIO instance for testing purposes):

// snippet-comment:[These are tags for the AWS doc team's sample catalog. Do not remove.]
// snippet-sourcedescription:[GetObjectContentType.java demonstrates how to determine the content type of an object in an Amazon Simple Storage Service (Amazon S3) bucket.]
//snippet-keyword:[AWS SDK for Java v2]
//snippet-service:[Amazon S3]

/*
   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   SPDX-License-Identifier: Apache-2.0
*/

package com.example.s3;

// snippet-start:[s3.java2.getobjectcontenttype.import]

import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.GetObjectAttributesRequest;
import software.amazon.awssdk.services.s3.model.GetObjectAttributesResponse;
import software.amazon.awssdk.services.s3.model.ObjectAttributes;
import software.amazon.awssdk.services.s3.model.S3Exception;

import java.net.URI;
// snippet-end:[s3.java2.getobjectcontenttype.import]

/**
 * Before running this Java V2 code example, set up your development environment, including your credentials.
 * <p>
 * For more information, see the following documentation topic:
 * <p>
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */

public class GetObjectAttributes {

    public static void main(String[] args) {

        final String usage = "\n" +
                "Usage:\n" +
                "    <endpoint> <region> <accessKey> <secretKey> <bucketName> <keyName>>\n\n" +
                "Where:\n" +
                "    endpoint - The endpoint URL to connect to.\n\n" +
                "    region - The region to use.\n\n" +
                "    accessKey - The access-key that's used for authentication.\n\n" +
                "    secretKey - The secret-key that's used for authentication.\n\n" +
                "    bucketName - The bucket name. \n\n" +
                "    keyName - The key name. \n\n";

        if (args.length != 6) {
            System.out.println(usage);
            System.exit(1);
        }

        String endpoint = args[0];
        String region = args[1];
        String accessKey = args[2];
        String secretKey = args[3];
        String bucketName = args[4];
        String keyName = args[5];
        StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider
            .create(AwsBasicCredentials.create(accessKey, secretKey));
        S3Client s3 = S3Client.builder()
            .endpointOverride(URI.create(endpoint))
            .region(Region.of(region))
            .credentialsProvider(credentialsProvider)
            .build();

        getObjectAttributes(s3, bucketName, keyName);
        s3.close();
    }

    // snippet-start:[s3.java2.getobjectcontenttype.main]
    public static void getObjectAttributes(S3Client s3, String bucketName, String keyName) {

        try {
            final GetObjectAttributesRequest objectRequest = GetObjectAttributesRequest.builder()
                .bucket(bucketName)
                .key(keyName)
                .objectAttributes(ObjectAttributes.E_TAG)
                .build();

            GetObjectAttributesResponse response = s3.getObjectAttributes(objectRequest);
            String responseString = response.toString();
            System.out.println("The object attributes response is " + responseString);
        } catch (S3Exception e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
    // snippet-end:[s3.java2.getobjectcontenttype.main]
}

I then invoked the class with:

java -cp "target/dependency/*:target/amazon-s3-etag-test-1.0.0-SNAPSHOT.jar" com.example.s3.GetObjectAttributes http://127.0.0.1:9000 US-EAST-1 <accessKey> <secretKey> mybucket files/myfile.zip

Possible Solution

Not sure. Don't know if it is related to the encoding of the XML in the response.

Additional Information/Context

I'm running the example with Azul's JDK:

openjdk version "1.8.0_345"
OpenJDK Runtime Environment (Zulu 8.64.0.19-CA-linux64) (build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (Zulu 8.64.0.19-CA-linux64) (build 25.345-b01, mixed mode)

I've also tested against version 17 of Azul's JDK:

openjdk version "17.0.4.1" 2022-08-12 LTS
OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM Zulu17.36+17-CA (build 17.0.4.1+1-LTS, mixed mode, sharing)

and it still breaks (so not sure if it is a Java 8 issue).

As mentioned at the top, if I rework the code for version 1 of the SDK then I don't run into this exception. So, I suspect it is an issue that slipped in for version 2 of the SDK.

Also, I've tested this against a local MinIO instance as well as Wasabi and it produces the same issue in both cases. I haven't tested against AWS though.

AWS Java SDK version used

2.23.9

JDK version used

openjdk version "1.8.0_345"
OpenJDK Runtime Environment (Zulu 8.64.0.19-CA-linux64) (build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (Zulu 8.64.0.19-CA-linux64) (build 25.345-b01, mixed mode)

Operating System and version

Linux (Ubuntu 18.04 LTS)

@wcmatthysen wcmatthysen added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Jan 24, 2024
@wcmatthysen wcmatthysen changed the title Getting ParseError at [row,col]:[1,1] when calling getObjectAttributes XMLStreamException: ParseError at [row,col]:[1,1] -- when calling getObjectAttributes Jan 24, 2024
@wcmatthysen wcmatthysen changed the title XMLStreamException: ParseError at [row,col]:[1,1] -- when calling getObjectAttributes XMLStreamException: ParseError at [row,col]:[1,1] when calling getObjectAttributes Jan 24, 2024
@debora-ito
Copy link
Member

Also, I've tested this against a local MinIO instance as well as Wasabi and it produces the same issue in both cases. I haven't tested against AWS though.

Can you test using the AWS S3 endpoint directly?
Because I believe this is the root cause. If you are using a third-party endpoint, the response body might be using a different XML encoding than the one used by S3:

"<?xml version="1.0" encoding="UTF-8"?>[\n]"
"<GetObjectAttributesResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <ObjectParts><PartsCount>14</PartsCount></ObjectParts>
    <ObjectSize>116225227</ObjectSize>
</GetObjectAttributesResponse>"

You can enable verbose wirelogging and compare the response XMLs to be sure.

As a reminder, we don't guarantee that the SDK will work with third-party solutions.

@debora-ito debora-ito added response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 10 days. p3 This is a minor priority issue and removed needs-triage This issue or PR still needs to be triaged. labels Jan 25, 2024
@debora-ito debora-ito self-assigned this Jan 25, 2024
@wcmatthysen
Copy link
Author

wcmatthysen commented Jan 25, 2024

Ok, I tested with AWS and it seems to work. The output when enabling verbose wirelogging is:

2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "GET /files/dummy.pdf?attributes HTTP/1.1[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: storagez.demo.wiehann-pc.s3.af-south-1.amazonaws.com[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: 0f8b41f0-952d-fb75-f629-a762d6cf808e[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1; max=4[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Authorization: AWS4-HMAC-SHA256 Credential=<access-key>/20240125/af-south-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes, Signature=<signatue>[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "User-Agent: aws-sdk-java/2.23.9 Linux/5.4.0-169-generic OpenJDK_64-Bit_Server_VM/17.0.4.1+1-LTS Java/17.0.4.1 vendor/Azul_Systems__Inc. io/sync http/Apache cfg/retry-mode/legacy[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "X-Amz-Date: 20240125T120325Z[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-object-attributes: ETag[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-id-2: UQ6xo6jD53omrJjt1xzEB3HYLV5Pl0ZxQzJHLt0ji/HabCycbgZ8jhyUvyr0g/KrRjTBEoeL6mg=[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-request-id: XZGDTCWXMW1WV9TD[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Date: Thu, 25 Jan 2024 12:03:26 GMT[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Last-Modified: Thu, 25 Jan 2024 07:55:32 GMT[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Server: AmazonS3[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Length: 191[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "<?xml version="1.0" encoding="UTF-8"?>[\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:87 - http-outgoing-0 << "<GetObjectAttributesResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><ETag>2942bfabb3d05332b66eb128e0842cff</ETag></GetObjectAttributesResponse>"
The object attributes response is GetObjectAttributesResponse(LastModified=2024-01-25T07:55:32Z, ETag=2942bfabb3d05332b66eb128e0842cff)

For MinIO I get the following output:

2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "GET /65561253860cc0000155116c--58ecef09c54894cb79b9e239/inventory/inventory.zip?attributes HTTP/1.1[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: 127.0.0.1:7000[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: 27a0287f-5a6a-67bd-6216-01dd3432f15b[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1; max=4[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Authorization: AWS4-HMAC-SHA256 Credential=<access-key>/20240125/US-EAST-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes, Signature=<signature>[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "User-Agent: aws-sdk-java/2.23.9 Linux/5.4.0-169-generic OpenJDK_64-Bit_Server_VM/17.0.4.1+1-LTS Java/17.0.4.1 vendor/Azul_Systems__Inc. io/sync http/Apache cfg/retry-mode/legacy[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "X-Amz-Date: 20240125T120837Z[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-object-attributes: ETag[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Accept-Ranges: bytes[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Length: 1431019[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Type: application/zip[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "ETag: "193a181d882ef68f0db146a7d632c13f"[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Last-Modified: Wed, 10 Jan 2024 14:38:48 GMT[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Server: MinIO[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Strict-Transport-Security: max-age=31536000; includeSubDomains[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Vary: Origin[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Vary: Accept-Encoding[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Amz-Id-2: 21996febc4916c8ee8de25e3d14cc081cf2ca657027b5ceb2b641f13819537d0[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Amz-Request-Id: 17AD95C75E5751BA[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Content-Type-Options: nosniff[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Xss-Protection: 1; mode=block[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Date: Thu, 25 Jan 2024 12:08:37 GMT[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\r][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "PK[0x3][0x4][0x14][0x0][0x8][0x8][0x8][0x0][0x80]u[0x8c]W[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x11][0x0][0x0][0x0]snapshot-data.csv[0x1d][0xcc][0xc1][\r][0xc0]0[0xc][0x2][0xc0]g[0xe9][0xa3]61[0xb1][0xc7]I[0x94]z[0xff][0x11][0x8a][0xfa]A'$[0x80][0x93] [0x9c]A[0xd2][0x84][0x83][0xa2][0x3]0i[0xc0]Q[0xa0][0x1f][0x9a]l[0xbf]\][0x10][0xca][0x94][0x87]6[0x3][0x89][0xb8][0xa3][0xd1][0xa3]='[0xe6]Z[0xbe]u[0x1b][0x9d]|[0xf9]p[0xd7][0xe9]][0xd7][0x7]PK[0x7][0x8][0xf4]i[0xf9][0xed]K[0x0][0x0][0x0]j[0x0][0x0][0x0]PK[0x3][0x4][0x14][0x0][0x8][0x8][0x8][0x0][0x80]u[0x8c]W[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x18][0x0][0x0][0x0]snapshot-file-hashes.csv[0x1d][0xcb][0xc1][\r][0xc0] [0xc]C[0xd1]{g[0xe9][0xa1][0xc9][0x7][0x3][0xe3]P[0x8][0xfb][0x8f][0xd0][0xa8][0x7][O[0x96][0x8c]K[0x8]W[0x95]d[0x89][0xcd][0x90][0x3][0x96]*8[0x3][0xf9][0x96][0xa5][0xed][0x97][0xe7]VEvO[0x97][0xfc][0x14]:[0xf5][0x9e]S[0xeb][0xac][0xd2]b>/[0x9c] v[m[0x10][0x99][0x15]3[0xae][0xf]PK[0x7][0x8]6[0x89][0xd9]K[0x0][0x0][0x0]j[0x0][0x0][0x0]PK[0x3][0x4][0x14][0x0][0x8][0x8][0x8][0x0][0x80]u[0x8c]W[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x13][0x0][0x0][0x0]file-references.csv,[0x9d]I[0xa2][0xe4][0xb6][0xae]D[0xe7][0xb5][0x96][0x1c]H[0xec][0xb9][0x1c][0xb6][0xfb]_[0x82][0xcf][0xd1][0xf5][0xf7]e[0xd7]m[0x92][0x12][0x9][0x4]"H[0x0]|[0x9e]g[0x9f]sGy[0xc2]=1[0x8e]2c[0x8e][0xcf][0xad][0xb5][0x97][0xa7][0x94][0xd6][0xe3][0x13][0x9e][0xd5][0xcf]J[0xfb][0x94]y[0xe6][0xf3][0xcc][0x1a]F[0x9][0xcf][0xbd]q[0xf6][0x98][0x9e]_[0xbf]![0xf6][0x1e]B[0xcc][0xef][0xde]1[0x9d][0xa7][0x5][0xfe]8'[0xc7]PR[0x8b][0xed][0xdf][0xf3][0xf0][0xb7][0x15]g[0xdc][0xa3][0xce][0xf4][0x86][0xf2][0xf6]p[0xdf][0x93][0xc3][0xee][0xf1]>[0xf5][0x86][0x13]gM#[0xef][0xfa][0x86][0xc4][0x13][0xcc][0x1a][0x9f][0xf8][0x8e][0xf6][0xe4]~v[0x8b][0xe3][0xf7][0x86]6[0xcf][0x19][0xf1][0xae][0x96]Cz[0xc6]z[0xdf][0xf0][0xb6][0xd2][0xf2][0xdb][0xfa]n[0xe9]0[0xc2][0xbb]z[0xd9][0x85][0xcf][0xd8]y[0x97][0x9d][0xde]3g[0xef]9[0xc7][0x15][0x9e]P[0x9f][0xdd][0xc7][0xe6]Y*[0xbf]XR9[0xa5][0x9c][0xbe][0xc6][0xd9][0xef]{[0xde][0xbd][0xd2]l[0xbf][0xfc][0xe4]QO[0xc]oio|[0xce][0x18][0x99]a[0xf2][0x1d]c[0xa6][0x15]o[0x19]![0xa7][0xd2]k[0xca]m[0xd5][0xf7])y[0x9f][0xb4][0xce]y[0xe6]M{[0xb4][0xf5][0xec][0xf6][0x84][0xfe][0xbe]s[0xcc]|[0x1c][0xfa]y[0x9f]7[0xbd][0xa9]<[0xa7][0xc6]S[0xf7]=[0xbf]qZ[0x8a]5[0x95]Pbyg[0xeb][0xe7][0xa4][0x14]J[0xc8][0xab][0x9e][0xd0]zx[0x18][0xa1][0xbc][0xef][0xbd]<[0xce]9[0x9b][0xe9]Je[0x95][0xa7]3[0x85]<[0xc6]^m[0xb5]^V[0x1a][0xb1][0xdf][0xc9]t[0xac]7[0x86][0xd5]g[0xc9][0xa9][0x95]w[0xb7][0xb9]j[0xfa][0x9d][0x13]N.[0xb5][0xe6]r[0x99]o[0xde]n[0xc6]1n[0x98][0xa1]<[0xfb]elG[0xe8]y[0xf3]v-e>[0xbc][0x9c]Q[0xd2]]w[0xa6]S[0x9f][0x90][0x9f][0xf7][0xae][0x9d][0x98][0xa1][0x94][0xda][0xe1]u[0xde][0x91]Y[0xa9]}[0x9e]RCO[0xb1][0x8c][0xfd][0x8b][0x99]9[0x8a]{[0xc5]Z[0xee][0xbb][0xe3][0x1a]O[0x8c][0x91])g[0xd8];[0xce][0xf2][0x1d]j[0xe1][0xe5][0xc7]J[0x87][0xcf]X,[0xf1](#[0x96][0xd8][0xf6][0xea][0xb1]6[0xe6][0xa7][0xcd][0xcb]S[0xad][0xf7][0xb4]>W[0x1f][0xe1][0xa9][0xf9]-[0xa3][0xf0][0xff][0xfd]}[0xea]/[0x8c][0xba][0xc6][0x9a][0xe1][0xad][0xef]|[0xde][0xdc]*[0xef]y[0xf8]N[0x1c])c9[0x97][0x11][0xe6][0xbb]&[0x96][0xb1][0x9e][0xc3]3[0x85][0xb0]Rl[0xa1][0x97][0xfa]t[0x6][0xe3]#[0x19][0x11][0xb][0x1e]q[0xa7][0x90][0x19][0xe3]ML@^O[0x19]-[0x84]w[0xdf][0xdf][0xba][0xb7]N[0x96][0xad][0xf0][0xb5][0xb6]1[0xbc][0x10][0xb1][0xc9][0x13][0xd2]LQ[0xdb]f[0x84][0xcd][0xd4][0x9d]g1[0xf2]s[0xda][0xbb][0xc6][0x8e][0xf9]^>[0x95][0x1f]/[0xf8][0x6][0xcb][0xd5][0xdb][0xde]c[0xd7]yG[0x1b]o[0xdd][0xb9][0x9c][0xc8][0xa4][0xc5][0x1a]sK[0xbf][0xb2][0xda]|gWl[0xa9][0xf][0x1e][0xe8][\r][0xf1][0xe5]sz[0xcd]{[0xde][0xac]-[0xdd]:z<[0xb7][0xe6]9[0xcb][0xe][0x95][0xb5][0xe8][0x97]Y[0xeb][0xac][0xf7][0x88]u[0xef]}#[0x9f][0xd6][0x99][0xec]<z)[0xe9]}[0xfb][0x8d][0xac][0xf1]M3?[0xfd][0xf7][0xe4][0xfc][0x86][0xf9][0x16][0xfe][0xc5][0x82]'<[0xab][0xe7][0x8e]g[0xc6]7[0xb5]U[0xd2][0xfa][0xf7][0xbc][0xe1]yZ[0xc9][0xbc]g[0xce]O[0x1a][0xe1][0xae][0x89][0x9d]6^[0xf0][0x96][0x13]&C[0xc][0xec][0xbd]?[0xab][0xcc][0x8a][0xc3]f[0x1e][0xf8]mg[0x96]R[0xf][0xa6][0x1f]~[0xd8]g[0x9e][0x98][0xe2][0x88]g[0x1c]<[0xf6][0xe4][0x16][0xde]<[0xee]Z[0xb9][0x6]V[0x8f][0x11]X[0xd4][0xfa][0xfa]V+[0xbf][0x98]e[0xea][0x1d][0x93]d[0xc1][0xee][0xc5][0xf6][0xd6][0xdb]q[0xb4][[0xd2],5[0xd6][0xb7]=[\r]_kg[0xdf]]^[0xbe]V[0xf6][0xef]mu[0xe0][0xd6]}[0x80][0x4][0xf7]<[0xf8][0x2][0xce]pg[0xc1][0xa5][0xdb][0x1c][0x8e]0rM=[0xbe],[0xf9][0x8d]X[0xfa][0xc][0xb5][0xb7][0xb5]s[0x1e]<k[0xd9][0xf8][0xf7].g[0x85]4[0x1a][0x9e][0xf1][0xb4][0xfa][0xc]][0xf7][0xa4][0x98][0x99][0xcd][0xfc][0xcb]y[0xf5][0xdc][0xf6][0x8][0xe3]Yo[0xcb]un[0x1e][0xb4][0xb4]g[0xbc][0xbc][0xc7]S[0x2]#[0xa4][0x19][0xb]3[0xb3][0xd7]YxYaBq[0xdf]1qZ[0x9e]+[0xdc]R[0xf7][0xb3][0xd7][0x8][0x0][0xde][0xcd]g[0xb6]q*[0xee][0xba][0x3]?[0xd4]K[0xbe]?[0xe6][0x7][0xd4][0xc3]#X[0x8a]s1[0xd7]t[0xb1][0x9d][0xcd][0x1a][0x80]nywF[0xe0]uq[0xb5]][0x1b][0xe0][0xd3]J[0xf][0x98][0x1e]/8[0x9f][0x8d][0xad]b[0xc5]=[0xcf]2[0x9e][0xce]W[0xee][0xae][0xbc][0x17]X[0x93]J-k5[0xe6][0xe2][0x89][0xbf]x[0x93]S[0xaa]W[0xf7][0x7][0x97]b[0xcd][0x16]#[0xe][0xd6][0xba][0x9f][0x10][0xf1][0xb8][0x17][0xb7]b[0xf2][0x19][0x8e]q[0xde][0x98]r[0xc5]U6[0xef][b[0x8][0xa9][0xe2][0xd1][0x19]$[0xc5][0xd9][0xef];[0x81][0x82]|[0xd3][0x0]BR=8U[0x98][0xfd]76[0xbe]Q[0xe3][0x1b]2X[0xcc][0xf][0xa6][0xd6]FOo<3[0xf2][0xcc][0xf9][0x1b]a`Xu[0xe3][0xa2][0xa5][0x1][0x87][0xb9]E[0xa6][0xa6][0x80][0xc4][0xe0][0xed][0xdc][0xb8][0xde][0x9b]Vs[0x8d]k[0xdb]3[0x9c][0x1b]x[0xe7][0x12][0xc7][0xad][0xb8][0xc7]}@><[0xfe][0x94][0x16][0x9e][0xc1][0xab][0x16][\r]}U[0x9c](O[0xa6][0x1b]Xe[0x84]6[0x6][0x81][0xa6][0xe2][0xd2]O[0x98][0x7][0xaf]=s[0xa4]t[0x9d][0xb2][0xd4]WXY[0xe3][0xc8][0x98][0xfc]s[0xd6][0xe4]}>WJ[0xa0]W[0xee]#[0xe7][0xdf][0x1][0x13]*[0x90]W&>W0[0xbe][0xf2][0x86][0x91]x[0xa7][0x12][0xfa]mi2B[0xaf][0x98]?[0xe9][0xdd][0x80]O"[0xd8][0xdc][0x8d][0xed]v[0xcc][0xf1][0xe2][0xad]%[0x1a]hf|6[0x9e][0x89]1[0xf2]X[0xfd][0xc5][0x94][0x0][0xc1][0x92][0x9e][0x9d]~[0xbd][0xf2]N[0xac]q[0x0][0xe7]b[0xe4]i*[0xc0][0xf8][0xa4][0xb5][0x0][0xf4][0xce][0xb2]0[0x2][0xcf][0xfd]n@[\r][0x87][0xcc][0xf][0xef][0xc1]$of[0xe5][0x10][0xb5]*[0x1][0xf][0xdb]:[0x93][0x80][0xb5][0xd3]&(f~z[0x87][0xbd][0xdb][0xc5][0xe0]O[0xea][0xef][0xf][0xb4][0x6]s*[0xb6][0x96]^[0xe0][0x9c][0xe1]fn-[0xbe][0x7][0xf]6[0xaa]0[0x2]X[0xde]][0x85][0x96]A[0xd1][0xc6][0x8b]V[0x16][0x9b][0xa0][0x5][0x86][0xb5]g%[0xe2]X<a[0xb7]B [0xa8][0x3][0xc][0x1][0xa7][[0xbf][0xf8]c#z[0xe8]q@[\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xa6]<[0x6][0xbe]sv[0xca][0xc0][0xf3][0xe4][0xe3]A[0xb8][0x13]V,[0x8e][0x0][0xa2]c[0xe4][0xcf][0xc4][0xc][0xb0]K~[0xd7]E[0x9e][0xf]sJ[0xcc]9[0xa9][0xb0]FD[0xfe][0xdc]+(_[0xde][0x82][0xa1]b[0xa6]=[0xf0]h[0x4]n[0xe3][0xc3]7[0x8d][0xfd][0xbc][0xbc]=[0xcb][0xd6]g%[0xa6][0xcf][0xc8][0xb][0xf2][0x10][0xf8]46[0xfd][0x82]9[0x4]W[0x2][0xf5]z[0xf8][0x87][0x18][0x9][0xc][0x9e]a[0x98][0xc1][0x8a]xG[0xf0][0x97][0xaf][0xe7][0x9b][0x7]3[0x6]v\<[0xf][0x9f][0xe8]3[0x97][0xdf][0xc4]6*[0xb][0xbc][0x88]:[0x8b]qpK[0xe6]jj[0x83]c[0xcf][0xb8][0x1c][0x1][0xa4]b"+[0x13][0xd2]/q[0xb2][0xb6]uY[0xff][0x8d]m2[0x1]'[0x85]M[0xd8][0xc4]c[0x86][0x10][0xbf][0xa1][0x1a][0xef][0xbb][0xe7][0xb8][0xcc][0x8]N;[0x7][0x17]y[0x1e][0x88][0xca][0x8e][0xbd][0x9e]K[0x9c]a[0x86][0xc2][0xe0][0xf7][0x99]d,[0xc7][0x11][0x16][0xf0][0x86]![0x0]dX@.B6/|Z[0xde]I[0xd3]z[0x9f][0x1d][0xf1]*\d[0x1d]>[0x9]RA[0xd0]%[0x96][0xd6][0x94][0xce][0xb][0x13](!4[0xc0][0xf3][0x2][0x9a]m$[0xc][0x1d][0xe2][0x80][0xcb]1[0x99][0xc4][0xf6][0xf5][0xbd][0xc3][0xda][0x5][0xe][0x4][0x18][0xcc]4[0x89][0xcf][0x8d]%[0x6][0x1][0xee]x[0xc5][0xe][\r][0xf4][0x82]FNN[0xe5][0xf7][0xe2][0x93][0xea][0xf5]+[0x8e][0xfa][0xc4][0xf4][0x3]"a[0xb][0xd0]2[0xc8][0x13][0x81][0x1f]L[0x87][0xc6][0xb0][0x1c][0xb8][0xe4]:[0xf8][0x1a]#[0xbc]O[0xae]-[0xcc][0x1c];[0x4]bJq[0xc2][0xaa][0xcc][0x6][0xd3][0xf4]F[0xe2]P~B[0xc][0xb8][0x3][0xa6][0xb6][0xef][0xc3]w[0x9][0xe]`[0xe1][0x9b][0x18][0xe8]}~[0x18][0xea][0xac][0xa5][0xd5][0xb][0x9e][0xf0][0xa2][0xb8]vi1[0xed][0x10][0xf6][0x85]A[0x15]g[0xc9][0xc8]=[0x98][0x96][0xca][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "a[0xbf][0xcf][0x84][0x84]h[0xe0][0x1b]R[0xf6][0x12]"[0xe3][0xdd][0x9d][0x85][0xee][0xd0][0x87][0xde][0x99][0xfe][0x0]D[0xe7]At[0xc5][0xba][0xda][0xf3][0x83][0x17]<P[0xa5]<[0xdb]M[0x15][0x13][0x8d]N*[0xd3][0x9b]v[0x1c][0xed][0xdd][0xd9][0x11]j([0xb][0x0][0xc6][0xb7][0xcb][0x82][0xb3][0xe6][0x9d][0x99][0xe7][0xc0][0x1b]b[0xb0]z[0xb5]hFh[0x83][0xe4][0x85][\r]![,L[0xed][0xcf]d[0xc2][0xf1][0xd3]_ d[0xc1][0x88][0x88][0xea]D[0x90][0x10][0xeb]x[0xe7][0xee]kB[0xc1]z[0x8e][0xc0][0xb4]#[0xf4][0x94]W[0xc6][0xc8]G^qI[0x99][0xce][0x85][0x4]@[0xfc][0xee][0xc4][0xa5][0x16][0xc1][0x5][0x86][0x97][0xf5][0xf8]2q[0x81][0xc1][0x97][0xeb][0xbd][0x4][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xc8][0x1d][0xfe][0xf0][0xc][0x88][0xe0][0xe1]+[0x95]O[0x1e];[0xac][0x92]}m[0x1c][0x14].[0xb6]7#[0x84]9[0xd6][0x86]i[0xd7][0x89][0xe1][0xd5][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xf7][0xbe][0x90]*[0xd6][0x1c]x[0xdc][0x83])M[0xf3][0x86]z[0x8][0xf4][0xf9]M[0x7][0xa8][0xd8][0x80]_d[0x15]`u%[0xfe]6@E[0xb0][0xdf][0xa9][0x97][0xb1][0x6][0xe6]u[0xcf][0x1e][0xb9][0x13][0x9e][0xcb]_[0x1c]!F[0xa0][0x1e][0xaa]L[0x80][0x0][0xe4][0x89][0xf9][0x15][0xe3][0x9e][0xed][0xf0][0xef][0xdb]*[0xe1][0xa7][0x87][0x15]X[0xf9]$vC[0x1a]*[0xe0][0xb][0xc6][0x1]T0[0xa6][0xfa][0x3]$[0x81][0x2][0xd4]@KF{[0x8][0xd7][0xdc][0x95]g~'[0xb4]"[0xf5][0xe0][0x8]Pa[0xd8][0x1]|t[0xb0][0x8c][0x7]O`Z[0xe0][0xab][0xcc]t[0xbe][0xcc][0xd6][0xae][0xcf]b[0x2]g[0x4][0xba][0xf1]bX[0x11][0x18]Q[0xe]/Od[0xaf][0xbf][0x9d][\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xf0][0xbd].[0x9e][0xde]p[0xb4]Q[0x89][0xde]8}[0xae]V[0xb5][0x1d]!C[0xbd][0x1f]~[0xf][0xb4][0x84][0x1f]D&[0x92]H[0xf7]>[0x9d]'f[0xb8][0x8]G[0x8a]~[0x2][0x2][0x4][0xfe][0x8]_p[0x8a][0xa0][0xa7][0x81][0xe7][0x84][0x8b][0xfe][0xf2][0xd8]`7[0xf1]"M[0xfc][0x15] [0xe6][0x93][0xb1][0xca][0x3]I[0xb][0xc4]wm[0x89]e[0xc6]8[0x1f]LGe[0xc1][0xb4][0x3]# +?[0xd8][0xa1][0xad]pt[0xa6][0xec][0x2]%p[0x16][0xd6][0xa7]0[0xe9][0x9a][0xde][0x93][0xb0]^[0xa8][0xdc]o[0x1e][0x80][0xe6][0x2]m[0xc4]^[0xa0][0x9]*B[0x10][0xad]%[0xf2][0x94][0xef][0xc0][0x7][0x19][0x81]E[0xe4]Gn[0xc0]60s<[0xe3]![0x8e][0xf3][0xe2][0xa0]'l[0xcd]9[0x82][0xf9]2[0xe]2[0x2]\[0x2][0x12][0xb][0x9e]w2/[0x1][0x19][0xd9]?[0xa8])[0x11]"[0xaf]][0xd1]9[0x99][0x1f][0x0]Lr[0xcb][0x87]1[0x0][0xea]A[0x4][0xe2][0xc9][0x12][0x14][0x12][0x84][0xc7][0xd3]1\[0xf8];k@[0xa4][0x84][0xc0]!0[0x16][0x14][0xef]av[0x98]{[0xbf]D[0xe0]Kp7[0xc2]9[0x9a][0x6][0xc]/?,[0xef][0xe5]'`L[0x87][0x0][0x16][0x98][0xee][0xb9][0x8e]s[0x8b][0x86][0x2][0xac][0xbf][0x11]`I[0x18][0x6][0xea]$[0x10]>[0xf8][0xf2][0xc8][\r][0xd3][0x85]*[0x2][0xae][0xd9][0xef]7[0xc][0x14].[0xc][0xb3]A[0x1e][0x11]/[0xc7][0xe4][0xa5][0xb1][0x19][0xfc][0xf0][0xf9]1]D;[0xac][0xef] [0x7][0xfa]~kMs[0x87]X[0xc0][0xa8][0x82][0xbd][0x12][0xa7]C[0x8f]p[0xb1][0xbe][0xd0][0xb][0x93][0xd8][0x80][0x1d][0x11]E[0xc3].R[0x8f][0x7]+[0xc2]0j[0x4]v1i<z[0x1c]x[0xf2][0x4]eq[0xdd]K[0xc8]%[0x8a][0xe2]j[0x81][0xbf][0x87][0x83][0xc1][0xca]D[0xc7][0x9c]OM[0xe0][0xc]Q[\n]"
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xee][0xe0][0x8]x[0xf0]"[0xa8][0xde][0xbe][0xf9][0xe1]v[0x9]z[0xf3][0x85][0xa3][0xf3]&[0xf8][\n]"
...
...
2024-01-25 14:08:37 [main] DEBUG org.apache.http.wire:87 - http-outgoing-0 << "[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x87]O[0x4][0x0]blocks.csvPK[0x5][0x6][0x0][0x0][0x0][0x0][0x4][0x0][0x4][0x0][0xfe][0x0][0x0][0x0][0xd7][0xd4][0x15][0x0][0x0][0x0]"
Exception in thread "main" software.amazon.awssdk.core.exception.SdkClientException: Could not parse XML response.
        at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111)
        at software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:47)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:59)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.XmlResponseParserUtils.parse(XmlResponseParserUtils.java:64)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.parseResponse(AwsXmlPredicatedResponseHandler.java:116)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:96)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:93)
        at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:279)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:38)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:72)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:55)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:39)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:32)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
        at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:224)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:173)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:80)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:182)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:74)
        at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:53)
        at software.amazon.awssdk.services.s3.DefaultS3Client.getObjectAttributes(DefaultS3Client.java:5544)
        at com.example.s3.GetObjectAttributes.getObjectAttributes(GetObjectAttributes.java:83)
        at com.example.s3.GetObjectAttributes.main(GetObjectAttributes.java:69)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)
        at java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:55)

(the garbled output continues for a bit before the exception is finally thrown)

For Wasabi it's basically the same:

2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "GET /inventory/2024-01-08-17-04-53-inventory.zip?attributes HTTP/1.1[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: 65561253860cc0000155116c--58ecef09c54894cb79b9e239.s3.eu-west-2.wasabisys.com[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: 51d99cb7-4bfd-00b0-33d9-d91eeccb9649[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1; max=4[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Authorization: AWS4-HMAC-SHA256 Credential=<access-key>/20240125/eu-west-2/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes, Signature=<signature>[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "User-Agent: aws-sdk-java/2.23.9 Linux/5.4.0-169-generic OpenJDK_64-Bit_Server_VM/17.0.4.1+1-LTS Java/17.0.4.1 vendor/Azul_Systems__Inc. io/sync http/Apache cfg/retry-mode/legacy[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "X-Amz-Date: 20240125T122227Z[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-object-attributes: ETag[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Accept-Ranges: bytes[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Length: 1430955[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Type: application/zip[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Date: Thu, 25 Jan 2024 12:22:28 GMT[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "ETag: "31e397a6e08fa2586ad8d3a66464cde9"[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Last-Modified: Mon, 15 Jan 2024 19:10:03 GMT[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Server: WasabiS3/7.17.2963-2023-12-15-e1a2a5e70a (R206-U12)[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-id-2: nmuobkt5P7uz35FjXQPfiCub4uQ/bmcqqJ5HcG8LZjLuotpGutrIffmbg6A1JB744Rj217Yu57tn[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-request-id: 1D05DDA5E7ADB5B7:B[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-wasabi-cm-reference-id: 1706185348040 130.117.185.103 ConID:1695619604/EngineConID:21898005/Core:75[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\r][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "PK[0x3][0x4][0x14][0x0][0x0][0x8][0x8][0x0][0x9a][0x88](X6[0x89][0xd9]K[0x0][0x0][0x0]j[0x0][0x0][0x0][0x18][0x0][0x0][0x0]snapshot-file-hashes.csv[0x1d][0xcb][0xc1][\r][0xc0] [0xc]C[0xd1]{g[0xe9][0xa1][0xc9][0x7][0x3][0xe3]P[0x8][0xfb][0x8f][0xd0][0xa8][0x7][O[0x96][0x8c]K[0x8]W[0x95]d[0x89][0xcd][0x90][0x3][0x96]*8[0x3][0xf9][0x96][0xa5][0xed][0x97][0xe7]VEvO[0x97][0xfc][0x14]:[0xf5][0x9e]S[0xeb][0xac][0xd2]b>/[0x9c] v[m[0x10][0x99][0x15]3[0xae][0xf]PK[0x3][0x4][0x14][0x0][0x0][0x8][0x8][0x0][0x9a][0x88](X[0xf4]i[0xf9][0xed]K[0x0][0x0][0x0]j[0x0][0x0][0x0][0x11][0x0][0x0][0x0]snapshot-data.csv[0x1d][0xcc][0xc1][\r][0xc0]0[0xc][0x2][0xc0]g[0xe9][0xa3]61[0xb1][0xc7]I[0x94]z[0xff][0x11][0x8a][0xfa]A'$[0x80][0x93] [0x9c]A[0xd2][0x84][0x83][0xa2][0x3]0i[0xc0]Q[0xa0][0x1f][0x9a]l[0xbf]\][0x10][0xca][0x94][0x87]6[0x3][0x89][0xb8][0xa3][0xd1][0xa3]='[0xe6]Z[0xbe]u[0x1b][0x9d]|[0xf9]p[0xd7][0xe9]][0xd7][0x7]PK[0x3][0x4][0x14][0x0][0x0][0x8][0x8][0x0][0x9a][0x88](X[0x9a]z[0xa2][0x15]+N[0x4][0x0][0x10]z[0x7][0x0][0x13][0x0][0x0][0x0]file-references.csv,[0x9d]I[0xa2][0xe4][0xb6][0xae]D[0xe7][0xb5][0x96][0x1c]H[0xec][0xb9][0x1c][0xb6][0xfb]_[0x82][0xcf][0xd1][0xf5][0xf7]e[0xd7]m[0x92][0x12][0x9][0x4]"H[0x0]|[0x9e]g[0x9f]sGy[0xc2]=1[0x8e]2c[0x8e][0xcf][0xad][0xb5][0x97][0xa7][0x94][0xd6][0xe3][0x13][0x9e][0xd5][0xcf]J[0xfb][0x94]y[0xe6][0xf3][0xcc][0x1a]F[0x9][0xcf][0xbd]q[0xf6][0x98][0x9e]_[0xbf]![0xf6][0x1e]B[0xcc][0xef][0xde]1[0x9d][0xa7][0x5][0xfe]8'[0xc7]PR[0x8b][0xed][0xdf][0xf3][0xf0][0xb7][0x15]g[0xdc][0xa3][0xce][0xf4][0x86][0xf2][0xf6]p[0xdf][0x93][0xc3][0xee][0xf1]>[0xf5][0x86][0x13]gM#[0xef][0xfa][0x86][0xc4][0x13][0xcc][0x1a][0x9f][0xf8][0x8e][0xf6][0xe4]~v[0x8b][0xe3][0xf7][0x86]6[0xcf][0x19][0xf1][0xae][0x96]Cz[0xc6]z[0xdf][0xf0][0xb6][0xd2][0xf2][0xdb][0xfa]n[0xe9]0[0xc2][0xbb]z[0xd9][0x85][0xcf][0xd8]y[0x97][0x9d][0xde]3g[0xef]9[0xc7][0x15][0x9e]P[0x9f][0xdd][0xc7][0xe6]Y*[0xbf]XR9[0xa5][0x9c][0xbe][0xc6][0xd9][0xef]{[0xde][0xbd][0xd2]l[0xbf][0xfc][0xe4]QO[0xc]oio|[0xce][0x18][0x99]a[0xf2][0x1d]c[0xa6][0x15]o[0x19]![0xa7][0xd2]k[0xca]m[0xd5][0xf7])y[0x9f][0xb4][0xce]y[0xe6]M{[0xb4][0xf5][0xec][0xf6][0x84][0xfe][0xbe]s[0xcc]|[0x1c][0xfa]y[0x9f]7[0xbd][0xa9]<[0xa7][0xc6]S[0xf7]=[0xbf]qZ[0x8a]5[0x95]Pbyg[0xeb][0xe7][0xa4][0x14]J[0xc8][0xab][0x9e][0xd0]zx[0x18][0xa1][0xbc][0xef][0xbd]<[0xce]9[0x9b][0xe9]Je[0x95][0xa7]3[0x85]<[0xc6]^m[0xb5]^V[0x1a][0xb1][0xdf][0xc9]t[0xac]7[0x86][0xd5]g[0xc9][0xa9][0x95]w[0xb7][0xb9]j[0xfa][0x9d][0x13]N.[0xb5][0xe6]r[0x99]o[0xde]n[0xc6]1n[0x98][0xa1]<[0xfb]elG[0xe8]y[0xf3]v-e>[0xbc][0x9c]Q[0xd2]]w[0xa6]S[0x9f][0x90][0x9f][0xf7][0xae][0x9d][0x98][0xa1][0x94][0xda][0xe1]u[0xde][0x91]Y[0xa9]}[0x9e]RCO[0xb1][0x8c][0xfd][0x8b][0x99]9[0x8a]{[0xc5]Z[0xee][0xbb][0xe3][0x1a]O[0x8c][0x91])g[0xd8];[0xce][0xf2][0x1d]j[0xe1][0xe5][0xc7]J[0x87][0xcf]X,[0xf1](#[0x96][0xd8][0xf6][0xea][0xb1]6[0xe6][0xa7][0xcd][0xcb]S[0xad][0xf7][0xb4]>W[0x1f][0xe1][0xa9][0xf9]-[0xa3][0xf0][0xff][0xfd]}[0xea]/[0x8c][0xba][0xc6][0x9a][0xe1][0xad][0xef]|[0xde][0xdc]*[0xef]y[0xf8]N[0x1c])c9[0x97][0x11][0xe6][0xbb]&[0x96][0xb1][0x9e][0xc3]3[0x85][0xb0]Rl[0xa1][0x97][0xfa]t[0x6][0xe3]#[0x19][0x11][0xb][0x1e]q[0xa7][0x90][0x19][0xe3]ML@^O[0x19]-[0x84]w[0xdf][0xdf][0xba][0xb7]N[0x96][0xad][0xf0][0xb5][0xb6]1[0xbc][0x10][0xb1][0xc9][0x13][0xd2]LQ[0xdb]f[0x84][0xcd][0xd4][0x9d]g1[0xf2]s[0xda][0xbb][0xc6][0x8e][0xf9]^>[0x95][0x1f]/[0xf8][0x6][0xcb][0xd5][0xdb][0xde]c[0xd7]yG[0x1b]o[0xdd][0xb9][0x9c][0xc8][0xa4][0xc5][0x1a]sK[0xbf][0xb2][0xda]|gWl[0xa9][0xf][0x1e][0xe8][\r][0xf1][0xe5]sz[0xcd]{[0xde][0xac]-[0xdd]:z<[0xb7][0xe6]9[0xcb][0xe][0x95][0xb5][0xe8][0x97]Y[0xeb][0xac][0xf7][0x88]u[0xef]}#[0x9f][0xd6][0x99][0xec]<z)[0xe9]}[0xfb][0x8d][0xac][0xf1]M3?[0xfd][0xf7][0xe4][0xfc][0x86][0xf9][0x16][0xfe][0xc5][0x82]'<[0xab][0xe7][0x8e]g[0xc6]7[0xb5]U[0xd2][0xfa][0xf7][0xbc][0xe1]yZ[0xc9][0xbc]g[0xce]O[0x1a][0xe1][0xae][0x89][0x9d]6^[0xf0][0x96][0x13]&C[0xc][0xec][0xbd]?[0xab][0xcc][0x8a][0xc3]f[0x1e][0xf8]mg[0x96]R[0xf][0xa6][0x1f]~[0xd8]g[0x9e][0x98][0xe2][0x88]g[0x1c]<[0xf6][0xe4][0x16][0xde]<[0xee]Z[0xb9][0x6]V[0x8f][0x11]X[0xd4][0xfa][0xfa]V+[0xbf][0x98]e[0xea][0x1d][0x93]d[0xc1][0xee][0xc5][0xf6][0xd6][0xdb]q[0xb4][[0xd2],5[0xd6][0xb7]=[\r]_kg[0xdf]]^[0xbe]V[0xf6][0xef]mu[0xe0][0xd6]}[0x80][0x4][0xf7]<[0xf8][0x2][0xce]pg[0xc1][0xa5][0xdb][0x1c][0x8e]0rM=[0xbe],[0xf9][0x8d]X[0xfa][0xc][0xb5][0xb7][0xb5]s[0x1e]<k[0xd9][0xf8][0xf7].g[0x85]4[0x1a][0x9e][0xf1][0xb4][0xfa][0xc]][0xf7][0xa4][0x98][0x99][0xcd][0xfc][0xcb]y[0xf5][0xdc][0xf6][0x8][0xe3]Yo[0xcb]un[0x1e][0xb4][0xb4]g[0xbc][0xbc][0xc7]S[0x2]#[0xa4][0x19][0xb]3[0xb3][0xd7]YxYaBq[0xdf]1qZ[0x9e]+[0xdc]R[0xf7][0xb3][0xd7][0x8][0x0][0xde][0xcd]g[0xb6]q*[0xee][0xba][0x3]?[0xd4]K[0xbe]?[0xe6][0x7][0xd4][0xc3]#X[0x8a]s1[0xd7]t[0xb1][0x9d][0xcd][0x1a][0x80]nywF[0xe0]uq[0xb5]][0x1b][0xe0][0xd3]J[0xf][0x98][0x1e]/8[0x9f][0x8d][0xad]b[0xc5]=[0xcf]2[0x9e][0xce]W[0xee][0xae][0xbc][0x17]X[0x93]J-k5[0xe6][0xe2][0x89][0xbf]x[0x93]S[0xaa]W[0xf7][0x7][0x97]b[0xcd][0x16]#[0xe][0xd6][0xba][0x9f][0x10][0xf1][0xb8][0x17][0xb7]b[0xf2][0x19][0x8e]q[0xde][0x98]r[0xc5]U6[0xef][b[0x8][0xa9][0xe2][0xd1][0x19]$[0xc5][0xd9][0xef];[0x81][0x82]|[0xd3][0x0]BR=8U[0x98][0xfd]76[0xbe]Q[0xe3][0x1b]2X[0xcc][0xf][0xa6][0xd6]FOo<3[0xf2][0xcc][0xf9][0x1b]a`Xu[0xe3][0xa2][0xa5][0x1][0x87][0xb9]E[0xa6][0xa6][0x80][0xc4][0xe0][0xed][0xdc][0xb8][0xde][0x9b]Vs[0x8d]k[0xdb]3[0x9c][0x1b]x[0xe7][0x12][0xc7][0xad][0xb8][0xc7]}@><[0xfe][0x94][0x16][0x9e][0xc1][0xab][0x16][\r]}U[0x9c](O[0xa6][0x1b]Xe[0x84]6[0x6][0x81][0xa6][0xe2][0xd2]O[0x98][0x7][0xaf]=s[0xa4]t[0x9d][0xb2][0xd4]WXY[0xe3][0xc8][0x98][0xfc]s[0xd6][0xe4]}>WJ[0xa0]W[0xee]#[0xe7][0xdf][0x1][0x13]*[0x90]W&>W0[0xbe][0xf2][0x86][0x91]x[0xa7][0x12][0xfa]mi2B[0xaf][0x98]?[0xe9][0xdd][0x80]O"[0xd8][0xdc][0x8d][0xed]v[0xcc][0xf1][0xe2][0xad]%[0x1a]hf|6[0x9e][0x89]1[0xf2]X[0xfd][0xc5][0x94][0x0][0xc1][0x92][0x9e][0x9d]~[0xbd][0xf2]N[0xac]q[0x0][0xe7]b[0xe4]i*[0xc0][0xf8][0xa4][0xb5][0x0][0xf4][0xce][0xb2]0[0x2][0xcf][0xfd]n@[\r][0x87][0xcc][0xf][0xef][0xc1]$of[0xe5][0x10][0xb5]*[0x1][0xf][0xdb]:[0x93][0x80][0xb5][0xd3]&(f~z[0x87][0xbd][0xdb][0xc5][0xe0]O[0xea][0xef][0xf][0xb4][0x6]s*[0xb6][0x96]^[0xe0][0x9c][0xe1]fn-[0xbe][0x7][0xf]6[0xaa]0[0x2]X[0xde]][0x85][0x96]A[0xd1][0xc6][0x8b]V[0x16][0x9b][0xa0][0x5][0x86][0xb5]g%[0xe2]X<a[0xb7]B [0xa8][0x3][0xc][0x1][0xa7][[0xbf][0xf8]c#z[0xe8]q@[\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xa6]<[0x6][0xbe]sv[0xca][0xc0][0xf3][0xe4][0xe3]A[0xb8][0x13]V,[0x8e][0x0][0xa2]c[0xe4][0xcf][0xc4][0xc][0xb0]K~[0xd7]E[0x9e][0xf]sJ[0xcc]9[0xa9][0xb0]FD[0xfe][0xdc]+(_[0xde][0x82][0xa1]b[0xa6]=[0xf0]h[0x4]n[0xe3][0xc3]7[0x8d][0xfd][0xbc][0xbc]=[0xcb][0xd6]g%[0xa6][0xcf][0xc8][0xb][0xf2][0x10][0xf8]46[0xfd][0x82]9[0x4]W[0x2][0xf5]z[0xf8][0x87][0x18][0x9][0xc][0x9e]a[0x98][0xc1][0x8a]xG[0xf0][0x97][0xaf][0xe7][0x9b][0x7]3[0x6]v\<[0xf][0x9f][0xe8]3[0x97][0xdf][0xc4]6*[0xb][0xbc][0x88]:[0x8b]qpK[0xe6]jj[0x83]c[0xcf][0xb8][0x1c][0x1][0xa4]b"+[0x13][0xd2]/q[0xb2][0xb6]uY[0xff][0x8d]m2[0x1]'[0x85]M[0xd8][0xc4]c[0x86][0x10][0xbf][0xa1][0x1a][0xef][0xbb][0xe7][0xb8][0xcc][0x8]N;[0x7][0x17]y[0x1e][0x88][0xca][0x8e][0xbd][0x9e]K[0x9c]a[0x86][0xc2][0xe0][0xf7][0x99]d,[0xc7][0x11][0x16][0xf0][0x86]![0x0]dX@.B6/|Z[0xde]I[0xd3]z[0x9f][0x1d][0xf1]*\d[0x1d]>[0x9]RA[0xd0]%[0x96][0xd6][0x94][0xce][0xb][0x13](!4[0xc0][0xf3][0x2][0x9a]m$[0xc][0x1d][0xe2][0x80][0xcb]1[0x99][0xc4][0xf6][0xf5][0xbd][0xc3][0xda][0x5][0xe][0x4][0x18][0xcc]4[0x89][0xcf][0x8d]%[0x6][0x1][0xee]x[0xc5][0xe][\r][0xf4][0x82]FNN[0xe5][0xf7][0xe2][0x93][0xea][0xf5]+[0x8e][0xfa][0xc4][0xf4][0x3]"a[0xb][0xd0]2[0xc8][0x13][0x81][0x1f]L[0x87][0xc6][0xb0][0x1c][0xb8][0xe4]:[0xf8][0x1a]#[0xbc]O[0xae]-[0xcc][0x1c];[0x4]bJq[0xc2][0xaa][0xcc][0x6][0xd3][0xf4]F[0xe2]P~B[0xc][0xb8][0x3][0xa6][0xb6][0xef][0xc3]w[0x9][0xe]`[0xe1][0x9b][0x18][0xe8]}~[0x18][0xea][0xac][0xa5][0xd5][0xb][0x9e][0xf0][0xa2][0xb8]vi1[0xed][0x10][0xf6][0x85]A[0x15]g[0xc9][0xc8]=[0x98][0x96][0xca][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "a[0xbf][0xcf][0x84][0x84]h[0xe0][0x1b]R[0xf6][0x12]"[0xe3][0xdd][0x9d][0x85][0xee][0xd0][0x87][0xde][0x99][0xfe][0x0]D[0xe7]At[0xc5][0xba][0xda][0xf3][0x83][0x17]<P[0xa5]<[0xdb]M[0x15][0x13][0x8d]N*[0xd3][0x9b]v[0x1c][0xed][0xdd][0xd9][0x11]j([0xb][0x0][0xc6][0xb7][0xcb][0x82][0xb3][0xe6][0x9d][0x99][0xe7][0xc0][0x1b]b[0xb0]z[0xb5]hFh[0x83][0xe4][0x85][\r]![,L[0xed][0xcf]d[0xc2][0xf1][0xd3]_ d[0xc1][0x88][0x88][0xea]D[0x90][0x10][0xeb]x[0xe7][0xee]kB[0xc1]z[0x8e][0xc0][0xb4]#[0xf4][0x94]W[0xc6][0xc8]G^qI[0x99][0xce][0x85][0x4]@[0xfc][0xee][0xc4][0xa5][0x16][0xc1][0x5][0x86][0x97][0xf5][0xf8]2q[0x81][0xc1][0x97][0xeb][0xbd][0x4][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xc8][0x1d][0xfe][0xf0][0xc][0x88][0xe0][0xe1]+[0x95]O[0x1e];[0xac][0x92]}m[0x1c][0x14].[0xb6]7#[0x84]9[0xd6][0x86]i[0xd7][0x89][0xe1][0xd5][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xf7][0xbe][0x90]*[0xd6][0x1c]x[0xdc][0x83])M[0xf3][0x86]z[0x8][0xf4][0xf9]M[0x7][0xa8][0xd8][0x80]_d[0x15]`u%[0xfe]6@E[0xb0][0xdf][0xa9][0x97][0xb1][0x6][0xe6]u[0xcf][0x1e][0xb9][0x13][0x9e][0xcb]_[0x1c]!F[0xa0][0x1e][0xaa]L[0x80][0x0][0xe4][0x89][0xf9][0x15][0xe3][0x9e][0xed][0xf0][0xef][0xdb]*[0xe1][0xa7][0x87][0x15]X[0xf9]$vC[0x1a]*[0xe0][0xb][0xc6][0x1]T0[0xa6][0xfa][0x3]$[0x81][0x2][0xd4]@KF{[0x8][0xd7][0xdc][0x95]g~'[0xb4]"[0xf5][0xe0][0x8]Pa[0xd8][0x1]|t[0xb0][0x8c][0x7]O`Z[0xe0][0xab][0xcc]t[0xbe][0xcc][0xd6][0xae][0xcf]b[0x2]g[0x4][0xba][0xf1]bX[0x11][0x18]Q[0xe]/Od[0xaf][0xbf][0x9d][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xf0][0xbd].[0x9e][0xde]p[0xb4]Q[0x89][0xde]8}[0xae]V[0xb5][0x1d]!C[0xbd][0x1f]~[0xf][0xb4][0x84][0x1f]D&[0x92]H[0xf7]>[0x9d]'f[0xb8][0x8]G[0x8a]~[0x2][0x2][0x4][0xfe][0x8]_p[0x8a][0xa0][0xa7][0x81][0xe7][0x84][0x8b][0xfe][0xf2][0xd8]`7[0xf1]"M[0xfc][0x15] [0xe6][0x93][0xb1][0xca][0x3]I[0xb][0xc4]wm[0x89]e[0xc6]8[0x1f]LGe[0xc1][0xb4][0x3]# +?[0xd8][0xa1][0xad]pt[0xa6][0xec][0x2]%p[0x16][0xd6][0xa7]0[0xe9][0x9a][0xde][0x93][0xb0]^[0xa8][0xdc]o[0x1e][0x80][0xe6][0x2]m[0xc4]^[0xa0][0x9]*B[0x10][0xad]%[0xf2][0x94][0xef][0xc0][0x7][0x19][0x81]E[0xe4]Gn[0xc0]60s<[0xe3]![0x8e][0xf3][0xe2][0xa0]'l[0xcd]9[0x82][0xf9]2[0xe]2[0x2]\[0x2][0x12][0xb][0x9e]w2/[0x1][0x19][0xd9]?[0xa8])[0x11]"[0xaf]][0xd1]9[0x99][0x1f][0x0]Lr[0xcb][0x87]1[0x0][0xea]A[0x4][0xe2][0xc9][0x12][0x14][0x12][0x84][0xc7][0xd3]1\[0xf8];k@[0xa4][0x84][0xc0]!0[0x16][0x14][0xef]av[0x98]{[0xbf]D[0xe0]Kp7[0xc2]9[0x9a][0x6][0xc]/?,[0xef][0xe5]'`L[0x87][0x0][0x16][0x98][0xee][0xb9][0x8e]s[0x8b][0x86][0x2][0xac][0xbf][0x11]`I[0x18][0x6][0xea]$[0x10]>[0xf8][0xf2][0xc8][\r][0xd3][0x85]*[0x2][0xae][0xd9][0xef]7[0xc][0x14].[0xc][0xb3]A[0x1e][0x11]/[0xc7][0xe4][0xa5][0xb1][0x19][0xfc][0xf0][0xf9]1]D;[0xac][0xef] [0x7][0xfa]~kMs[0x87]X[0xc0][0xa8][0x82][0xbd][0x12][0xa7]C[0x8f]p[0xb1][0xbe][0xd0][0xb][0x93][0xd8][0x80][0x1d][0x11]E[0xc3].R[0x8f][0x7]+[0xc2]0j[0x4]v1i<z[0x1c]x[0xf2][0x4]eq[0xdd]K[0xc8]%[0x8a][0xe2]j[0x81][0xbf][0x87][0x83][0xc1][0xca]D[0xc7][0x9c]OM[0xe0][0xc]Q[\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xee][0xe0][0x8]x[0xf0]"[0xa8][0xde][0xbe][0xf9][0xe1]v[0x9]z[0xf3][0x85][0xa3][0xf3]&[0xf8][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << ",[0x8a][0x90][0xdb]`[0xcc][0xb8]W[0xc2]|[0x1a]nS[0xa0][0xe2]D[0x82][0x80][0x2][0xf8]m[0x94]K[0x1e][0xb][0xfb][0xc4]b[0x1f][0xc2]c[0xaa][0xb8];[0xf1]a@[0x2][0x93][0xbc][0x15][0x1b]>[0x10][0xbd]5[0xf5][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "b[0xcf]$[0xe4][0xa1][0x94][0x81][0xf7][0x10][0x1]`[0xf4][0xe0][0xc3]S[0x1f][0xa8][0xed][0xee][0xef][0xad][0xf]|[0xea][0xbe][0xf0]1d[0x19][0x1][0x17]v[0xdf][0xdb][0x84]h1[0xff][0x1][0x9e][0xc5][0x10][0xf0]0[0x4][\r]pL[0x4][0x87][0xa1]1[0x2]x[0x4]5C_[0x80][0xdb]k@[0xdc][0x89][0xb0]G[0x8d][0xf4][0x2][0xd8]-'[0xb4]E[0xc0]~:[0xde]&[0x88][0xa0]7[0xef][0x16][0xa8]Xv[0xb4][0xf8]/UY[0x16][0xf1]g[0xbe][0x6]9[0x88][0xe][0x93]?`DD|[0xac][0xe1]o[0x84]M$a[0x19][0xc6]s.[0xec]7[0x6]|[0x8]n!+EEv"K6[0xc2][0xbf]c[0x16][0x1d][0x86][0xb8][0x2]vb[0xc8]|p[0xe9][0xbf][0x17][0x6][\n]"
2024-01-25 14:22:28 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xe3][0xe9][0xa0][0x4][0xbe][0x98]c.*[0xb6]"[0x8f][0xc6]I[0xc2][0xeb][0x8][0x7][0x4][0xe1][0xb1]Q[0x3]I[0xfe]I[0x18][0xd7][0xb8]o[0x81][0x0][0xad]}[0x82][0x4]\[0xe2]N[0xf4][0xc]-"[0xe4][0xe1][0x85][0x95][0xe9][0xc2][0xfa][0xeb][0xf3][0xfc][0xd0][0x80][0x19][0xef][0x7][0xa9][0xde][0x82]J[0xeb][0xa1]N^[0xa3][0x10][0xd6]0Zx[0xc]#[0xc0][0x87]s%[0xb8][0xd7][0xae][0xaa][0xbc]h=[0x80]<[0xac][0xbd]!/q[0x0][0xa0][0xd8]/,[0x90][0xf7][0x87][0xbf][0x8a][0xa1][0xb0]p[0x15][0xf3][0x0][0xf7]QY/[0xf3][0x88]A4([0x8a],L[0x2]Y#l1@[0xfd][0x2][0xb4][0xc0][0x11][0x8][0xc9]([0x9b]FD[0x1]WBDO[0x82][0x91]/[0xe3][0x1c]f[0x5]][0x92]][0xca][0x13][0xd0]m[0xd8]##"[0xb7]_[0xe0][0xb]n[0x87][0x96][0xfb]A[0x9]pp,pN|[0xbb][0xa1][0x8e][0x8c][0xc9]jL[0x15][0xc6][0xdb][0x18][0x81][0x90][0x9a][0xcb]D*[0xf2]OF[0xe5][0xe0][0x9e][0x1]T8[0x13]M[0xb4][0x99][0xc2][0x8b][0xbb][0xe1][0xe5][0xac][0x16]h[0x14][0xb1]f[0x0][0x4]n,[0x8f][0x5]X~[0x86][0x1a][0xfc][0xf1]l[0xa2]@[0x6]9p[0xd2][0xae]4[0xc3]g^[0xf4][\n]"
...
...
2024-01-25 14:22:29 [main] DEBUG org.apache.http.wire:87 - http-outgoing-0 << "[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0xb4][0x81]WO[0x4][0x0]blocks.csvPK[0x5][0x6][0x0][0x0][0x0][0x0][0x4][0x0][0x4][0x0][0xfe][0x0][0x0][0x0][0x97][0xd4][0x15][0x0][0x0][0x0]"
Exception in thread "main" software.amazon.awssdk.core.exception.SdkClientException: Could not parse XML response.
        at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111)
        at software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:47)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:59)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.XmlResponseParserUtils.parse(XmlResponseParserUtils.java:64)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.parseResponse(AwsXmlPredicatedResponseHandler.java:116)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:96)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85)
        at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:93)
        at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:279)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:38)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:72)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:55)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:39)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56)
        at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:50)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:32)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
        at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
        at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:224)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:173)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:80)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:182)
        at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:74)
        at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
        at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:53)
        at software.amazon.awssdk.services.s3.DefaultS3Client.getObjectAttributes(DefaultS3Client.java:5544)
        at com.example.s3.GetObjectAttributes.getObjectAttributes(GetObjectAttributes.java:83)
        at com.example.s3.GetObjectAttributes.main(GetObjectAttributes.java:69)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)
        at java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
        at software.amazon.awssdk.protocols.query.unmarshall.XmlDomParser.parse(XmlDomParser.java:55)
        ... 41 more

It looks like the responses for MinIO and Wasabi are returning the objects themselves. From what I can gather online, it seems as though PK[0x3][0x4] is the start of the PDF and the rest that follows is the actual data. I tried running this on a PDF that I've stored in MinIO for the same bucket and the output is:

2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "GET /65561253860cc0000155116c--58ecef09c54894cb79b9e239/files/dummy.pdf?attributes HTTP/1.1[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: 127.0.0.1:7000[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: d2403e86-74cc-ad1f-600e-7f04e90f35e8[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1; max=4[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Authorization: AWS4-HMAC-SHA256 Credential=<access-key>/20240125/US-EAST-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes, Signature=<signature>[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "User-Agent: aws-sdk-java/2.23.9 Linux/5.4.0-169-generic OpenJDK_64-Bit_Server_VM/17.0.4.1+1-LTS Java/17.0.4.1 vendor/Azul_Systems__Inc. io/sync http/Apache cfg/retry-mode/legacy[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "X-Amz-Date: 20240125T123626Z[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-object-attributes: ETag[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Accept-Ranges: bytes[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Length: 13264[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Type: application/pdf[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "ETag: "2942bfabb3d05332b66eb128e0842cff"[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Last-Modified: Thu, 25 Jan 2024 12:35:56 GMT[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Server: MinIO[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Strict-Transport-Security: max-age=31536000; includeSubDomains[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Vary: Origin[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Vary: Accept-Encoding[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Amz-Id-2: 21996febc4916c8ee8de25e3d14cc081cf2ca657027b5ceb2b641f13819537d0[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Amz-Request-Id: 17AD974BFCEE9B5C[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Content-Type-Options: nosniff[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "X-Xss-Protection: 1; mode=block[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Date: Thu, 25 Jan 2024 12:36:26 GMT[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\r][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "%PDF-1.4[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "%[0xc3][0xa4][0xc3][0xbc][0xc3][0xb6][0xc3][0x9f][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "2 0 obj[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "<</Length 3 0 R/Filter/FlateDecode>>[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "stream[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x[0x9c]=[0x8e][0xcb][\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0x2]1[0xc]E[0xf7][0xf9][0x8a][0xbb]v[0x11][0x93][0xb6][0xe9][0xb4]0[0x8][0xe][0xe8]~[0xa0][0xe0][0xf][0xf8][0x0][0x17][0x82][0xb3][0x99][0xdf][0xb7][0xad][0x8e]d[0x93]{r[0x12]"X[0xe9][\r][0x81][0xb0][0xc2][0xb2][0xb1]G[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[0xca][0x19][0xcb][\r][0x97][0x1d]^[0xdf]Y[0xad][0xe5]AS![0x8b][0x9c]0X[0xaa]r[0xb9]bVhl[0xfd][0x1d][0xa3][0xa8]8[0xf1][0xe2][0xf](O[0xb2]vN[0x9a]3J[0xe8]$o[0xd1]z[0xc][0x1c]6[0x10][0xeb][0xe6][0xd0][0xa1]w[0xec][0xfe][0x9a]$[0xc9][0x9d]j[0xa8]O[0xfd][0xe8]Q[0xa6][0xce]N[0x85]f[0x9a][0xf1][0x1][0xcb][0x92]([\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "endstream[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "endobj[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "3 0 obj[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "134[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "endobj[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "5 0 obj[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "<</Length 6 0 R/Filter/FlateDecode/Length1 23164>>[\n]"
2024-01-25 14:36:26 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "stream[\n]"
...
...

So, it seems as though the responses for MinIO and Wasabi are problematic in some sense. However, like I mentioned at the top, for V1 of the SDK these requests work for both MinIO and Wasabi.

@wcmatthysen
Copy link
Author

wcmatthysen commented Jan 25, 2024

I see that for version 1 of the SDK if a GetObjectMetadataRequest is sent to AWS, MinIO or Wasabi then the resulting request is a HEAD request that looks as follows:

2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "HEAD /files/dummy.pdf HTTP/1.1[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: storagez.demo.wiehann-pc.s3.af-south-1.amazonaws.com[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: b9752871-757a-630b-7390-e9f2fe47c4d4[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1;max=4[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-retry: 0/0/500[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Authorization: AWS4-HMAC-SHA256 Credential=<access-key>/20240125/af-south-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;amz-sdk-retry;content-type;host;user-agent;x-amz-content-sha256;x-amz-date, Signature=<signature>[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Content-Type: application/octet-stream[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "User-Agent: aws-sdk-java/1.12.644 Linux/5.4.0-169-generic OpenJDK_64-Bit_Server_VM/17.0.4.1+1-LTS java/17.0.4.1 vendor/Azul_Systems,_Inc. cfg/retry-mode/legacy[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "X-Amz-Date: 20240125T132719Z[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-id-2: EZD8FVRjfV6iF7ulDenctBJrnXanCgzmkAhli8mjLRwsT1mdjOKikHURl6cm5UOQkYG00LSPVAA=[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-request-id: C4R5VTYJ4F6HZEQC[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Date: Thu, 25 Jan 2024 13:27:20 GMT[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Last-Modified: Thu, 25 Jan 2024 07:55:32 GMT[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "ETag: "2942bfabb3d05332b66eb128e0842cff"[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "x-amz-server-side-encryption: AES256[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Accept-Ranges: bytes[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Type: application/pdf[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Server: AmazonS3[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "Content-Length: 13264[\r][\n]"
2024-01-25 15:27:19 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 << "[\r][\n]"
The object attributes response is com.amazonaws.services.s3.model.ObjectMetadata@4d847d32

Am I correct in stating that for V2 of the SDK a GET is performed with a query parameter of ?attributes instead, which is not properly implemented in MinIO and Wasabi (and that is why it's breaking). Their responses should have been something along the line of:

2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "GET /files/dummy.pdf?attributes HTTP/1.1[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "Host: storagez.demo.wiehann-pc.s3.af-south-1.amazonaws.com[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-invocation-id: 0f8b41f0-952d-fb75-f629-a762d6cf808e[\r][\n]"
2024-01-25 14:03:25 [main] DEBUG org.apache.http.wire:73 - http-outgoing-0 >> "amz-sdk-request: attempt=1; max=4[\r][\n]"
...
...
<GetObjectAttributesResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><ETag>2942bfabb3d05332b66eb128e0842cff</ETag></GetObjectAttributesResponse>

as XML response. Instead, they're sending back the data of the object itself.

Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@wcmatthysen
Copy link
Author

wcmatthysen commented Jan 25, 2024

Ok, it seems as though MinIO (and probably Wasabi) might not have implemented the get-object-attributes functionality yet. I've seen it mentioned here. As a workaround I've switched to using HeadObjectRequest instead as that correctly returns the e-tag with MinIO and Wasabi. So, it doesn't look to be an issue with the SDK itself. So, I think this issue can be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. p3 This is a minor priority issue response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 10 days.
Projects
None yet
Development

No branches or pull requests

2 participants