Почему AWS S3 JDK Java дает мне возможность проверить ваш ключ и метод подписи?

#java #amazon-s3 #aws-sdk

#java #amazon-s3 #aws-sdk

Вопрос:

 AWSCredentials l_credentials = new BasicAWSCredentials(
        <Access Key>,
        <Secret Key>
    );
AmazonS3 amazonS3Cleint  = AmazonS3ClientBuilder
        .standard()
        .withRegion(Regions.AP_SOUTHEAST_1)
        .withCredentials(new AWSStaticCredentialsProvider(l_credentials))
        .build();
URI fileToBeDownloaded = new URI("https://s3-ap-southeast-1.amazonaws.com/bucket-name/private/service/entity/19/04/1554190039-first last.csv");
AmazonS3URI s3URI = new AmazonS3URI(fileToBeDownloaded);
S3Object l_object =  amazonS3Cleint.getObject(s3URI.getBucket(), s3URI.getKey());
  

дает мне

 com.amazonaws.services.s3.model.AmazonS3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: Amazon S3; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: 621B7DD7DDCA0734; S3 Extended Request ID: HLjCevVe8qEEbcn0X4p5CvLGEF5traDzXviP1NzuA3vN10GpDfe60vw7eIUN13Z/JedEowAcYMc=), S3 Extended Request ID: HLjCevVe8qEEbcn0X4p5CvLGEF5traDzXviP1NzuA3vN10GpDfe60vw7eIUN13Z/JedEowAcYMc=
  

Учетные данные верны. Я могу проверить все для корзины, используя aws s3 cli. Может кто-нибудь проверить, что я делаю неправильно? Я также не могу перечислить сегменты, использующие этот клиент. Я предполагаю, что есть какая-то проблема при запуске клиента Amazon.

Комментарии:

1. ` <зависимость> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> </dependency> `

2. Я сталкивался с этой проблемой несколько раз. Это может быть связано с неправильными учетными данными.