我已经编写了这个最简单的代码来连接S3 -
String accessKey = "somekey";
String secretKey = "somesecret";
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 conn = new AmazonS3Client(credentials);
conn.setEndpoint("advenio-ireland.s3.amazonaws.com");
List<Bucket> buckets = conn.listBuckets();
for (Bucket bucket : buckets) {
System.out.println(bucket.getName() + "\t" +
StringUtils.fromDate(bucket.getCreationDate()));
}
我低于错误 -
捕获了一个AmazonServiceException,这意味着您的请求已成功 Amazon S3,但由于某种原因被拒绝并出现错误响应。 错误消息:我们计算的请求签名不匹配 你提供的签名。检查您的密钥和签名方法。
HTTP状态代码:403
AWS错误代码:SignatureDoesNotMatch
错误类型:客户端
请求ID:396D5E93F8D827DE
我能够通过S3浏览器使用相同的访问密钥和密钥进行连接,但通过代码无法正常工作!我使用的是AWS-SDK 1.8.7版。
请说明错误发生原因的原因。