Подпись DoesNotMatch для PresignedURL в Java - PullRequest
0 голосов
/ 26 февраля 2019
public S3PresignedURLServiceImpl() {
        amazonS3Client = AmazonS3ClientBuilder
                .standard()
                .withCredentials(new DefaultAWSCredentialsProviderChain())
                .withRegion(S3PresignedURLConstants.DEFAULT_REGION)
                .build();
    }

[В локальном режиме это работает, но когда лямбда развернута на консоли, получается

SignatureDoesNotMatch Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи.Проверьте свой ключ и метод подписи.

try {
    // Set the pre-signed URL to expire after specified time.
    java.util.Date expiration = new java.util.Date();
    long expTimeMillis = expiration.getTime();
    if(data.getExpiryTime() > 0) {
        expTimeMillis += 1000 * 60 * data.getExpiryTime();
    } else {
        expTimeMillis += 100 * 60 * 60 * 6;
    }
    expiration.setTime(expTimeMillis);
    HttpMethod httpMethod = data.isUpload()?HttpMethod.PUT:HttpMethod.GET;

    Logger.logInfo("Generating pre-signed URL.",REPORTER);
    GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(data.getBucketName(), data.getFilePath())
            .withMethod(httpMethod)
            .withExpiration(expiration);
    if(!data.isUpload())
        generatePresignedUrlRequest.withVersionId(data.getVersionId());
    else generatePresignedUrlRequest.withContentType(data.getContentType());

    url = amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest);
    responseData.setPreSignedUrl(url.toString());
}
catch(Exception e) {
    throw new S3PresignedURLException(e.getMessage(), e);
}

Screenshot

1 Ответ

0 голосов
/ 02 июня 2019

Проверьте версию библиотеки org.apache.httpcomponents:httpclient, если она 4.5.7 или 4.5.8, попробуйте понизить ее до 4.5.6, поскольку существуют проблемы с AWS SDK S3.Дополнительные сведения см. В разделе Подпись Amazon S3 не совпадает - AWS SDK Java и org.apache.httpcomponents: httpclient: 4.5.7 прерывания извлечения объектов S3 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...