可以通过在代码中添加host属性来解决这个问题。具体步骤如下所示:
1.将S3客户端的建立方法中的环境选择改为默认环境。
AWSStaticCredentialsProvider awsStaticCredentialsProvider = new AWSStaticCredentialsProvider(new BasicAWSCredentials("minio", "minio123")); AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withCredentials(awsStaticCredentialsProvider) .withEndpointConfiguration(new EndpointConfiguration("http://127.0.0.1:9000", "us-east-1")) .withPathStyleAccessEnabled(true) .build();
2.修改连接本地服务的URL,将127.0.0.1替换为localhost。
AWSStaticCredentialsProvider awsStaticCredentialsProvider = new AWSStaticCredentialsProvider(new BasicAWSCredentials("minio", "minio123")); AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withCredentials(awsStaticCredentialsProvider) .withEndpointConfiguration(new EndpointConfiguration("http://localhost:9000", "us-east-1")) .withPathStyleAccessEnabled(true) .build();
通过上述步骤修改后,即可避免AmazonsS3Client在尝试连接到本地服务时抛出UnknownHostException异常。