我收到错误" SignatureDoesnotMatch"从最近4个小时开始。请检查并告诉我代码中缺少的内容:
AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
s3Client.setEndpoint("***my-service-end-point");
s3Client.setRegion("my-region");
java.util.Date expiration = new java.util.Date();
long milliSeconds = expiration.getTime();
milliSeconds += 1000 * 60 * 60;
expiration.setTime(milliSeconds);
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(existingBucketName, keyName);
generatePresignedUrlRequest.setMethod(HttpMethod.GET);
generatePresignedUrlRequest.setExpiration(expiration);
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
System.out.println("s3Client :" + s3Client.getBucketLocation(existingBucketName))
答案 0 :(得分:0)
首先尝试将最新的aws sdk集成到您的代码中,如果仍然无法运行,那么我认为您将面临签名版本4身份验证机制的问题。亚马逊文档声明
**
在亚太地区(孟买),亚太地区(首尔),欧盟(法兰克福)和 中国(北京)地区,亚马逊S3仅支持签名版本4。 在所有其他地区,Amazon S3同时支持签名版本4和 签名版本2.
**
请查看以下链接:
我希望这会给你足够的想法来解决这个问题。