## Problem
Running MinIO locally in Docker with a public bucket, an anonymous PUT with the AWS SDK for Java v2 (2.30.x) fails with: software.amazon.awssdk.services.s3.model.S3Exception: Missing fields in request. (Service: S3, Status Code: 400). The trace shows the SDK sends Content-Encoding: aws-chunked with X-Amz-Content-Sha256: STREAMING-UNSIGNED-PAYLOAD-TRAILER and an X-Amz-Trailer: x-amz-checksum-crc32 trailer, even for anonymous credentials. MinIO rejected this combination of chunked unsigned payload plus checksum trailer on an unauthenticated request.
## Verified fix
This is a MinIO-side bug: it did not accept the anonymous-request combination of aws-chunked encoding, STREAMING-UNSIGNED-PAYLOAD-TRAILER, and an x-amz-checksum-crc32 trailer that aws-sdk-java v2.30 sends. Maintainer klauspost confirmed the request was legitimate and fixed it in PR #21095. Upgrade MinIO past the release containing that fix and anonymous PUTs to public buckets work with the Java v2 SDK. Authenticated requests with real credentials were never affected.
Source: https://github.com/minio/minio/issues/21005