如何解决aws-java-api使用HTTPS端点在Ceph存储中抛出SdkClientException列表对象
我正在构建一个可以管理多个对象存储服务器的系统。借助https://docs.ceph.com/en/latest/radosgw/s3/java/,我可以毫无问题地为具有HTTP端点的公共AWS S3存储实现关键功能。
但是,当我使用HTTPS端点将listObjects()调用到Ceph存储桶时,它将在下面引发异常。
com.amazonaws.SdkClientException:无法执行HTTP请求:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到所请求目标的有效证书路径
@Test
public void httpsTest() {
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTPS);
AmazonS3 client = new AmazonS3Client(new BasicAWSCredentials(ACCESSKEY,SECRETKEY),clientConfig);
client.setEndpoint(ENDPOINT);
List<Bucket> bl = client.listBuckets();
System.out.println(Arrays.deepToString(bl.toArray(new Bucket[]{}))); // works OK
if (bl.size() > 0) {
ObjectListing ol = client.listObjects(bl.get(0).getName()); // exception thrown here
System.out.println(ol.getObjectSummaries().toString());
}
}
试图查询getBucketAcl(),但它为每个存储桶都提供了相同的异常。同一服务器的HTTP端点也可以与setProtocol(HTTP)一起正常工作,因此这似乎不是存储桶ACL的问题。
如果不注册服务器到服务器的SSH密钥,如何避免此异常? (必须动态管理每个存储。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。