Skip to content

Conversation

sstamm
Copy link

@sstamm sstamm commented Jul 31, 2025

We use S3 provided by NetApp which does not support payload-signing.
To use the AWS S3Client you have to configure the Signer like:

        this.client = S3Client.builder()
            .overrideConfiguration(ClientOverrideConfiguration.builder().putAdvancedOption(SdkAdvancedClientOption.SIGNER, AwsS3V4Signer.create()).build()).build();

This change introduces s3.spi.client.custom-signer to define a customer signer class like:

    public static class Signer extends AbstractAwsS3V4Signer    {
        public Signer()        {
            //  Auto-generated constructor stub
        }
    }
...

        System.setProperty("s3.spi.client.custom-signer", Signer.class.getName());

Copy link
Contributor

@markjschreiber markjschreiber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for suggesting this change. While reviewing I noticed that the Signer class is deprecated and the recommendation is to use the software.amazon.awssdk.http.auth.spi.signer package, which is itself an SPI and might allow you to introduce a custom signer without needing to change this package?
Can you explore this possibility? Unfortunate there doesn't seem to be much documentation on this SPI. https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/auth/spi/signer/package-summary.html

@sstamm
Copy link
Author

sstamm commented Aug 1, 2025

I am struggling at this deprication for some time because it's not clear (for me as an S3 newbie) how to adopt it.
I found: aws/aws-sdk-java-v2#5962
Any idea where I can get more information?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants