Amazon s3 通过JAVA连接到Amazon S3时出现SignatureDesNotMatch错误

Amazon s3 通过JAVA连接到Amazon S3时出现SignatureDesNotMatch错误,amazon-s3,Amazon S3,自过去4小时以来,我收到的错误为SignatureDesNotMatch。请检查并让我知道我的代码中缺少什么: AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); s3Client.setEndpoint("***my-service-end-point"); s3Client.setRegion("my-region"); java.util.Date expiration = new java.u

自过去4小时以来,我收到的错误为SignatureDesNotMatch。请检查并让我知道我的代码中缺少什么:

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))

首先尝试在代码中集成最新的aws sdk,如果仍然不起作用,那么我认为您将面临签名版本4身份验证机制的问题。亚马逊的文档表明

**

亚太地区孟买、亚太地区首尔、欧盟法兰克福和 中国北京地区,Amazon S3仅支持签名版本4。 在所有其他地区,AmazonS3都支持签名版本4和 签名版本2

**

请查看以下链接:


我希望这将为您提供足够的想法来解决此问题。

哪一行会导致错误?url在哪里使用?我为测试创建了url,但在最后一行,即s3Client.getBucketLocationexistingBucketName失败