Maven项目“ AmazonS3ClientBuilder()在com.amazonaws.services.s3.AmazonS3ClientBuilder中具有私有访问权”

问题描述 投票:1回答:1

我有一个文件,很早就得到标题中提到的错误:

import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.PutObjectResult;
import java.io.File;

public static void main(String[] args) throws Exception {
    createAndPopulateSimpleBucket();
}

public static void createAndPopulateSimpleBucket() throws Exception {
    AmazonS3 s3client = new AmazonS3ClientBuilder().standard().build();
}

[当我调用新的AmazonS3ClientBuilder()时,标题中出现错误。

我是Maven的新手,我认为我的pom设置正确。这是:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>groupId</groupId>
    <artifactId>AWSJavaHelloWorld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>1.11.715</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-s3</artifactId>
        </dependency>

    </dependencies>
</project>

我猜我的pom出了点问题,但是我不知道是什么原因。当我从AWS开发工具包包含everything时(而不是仅包括S3依赖项),我also遇到了相同的错误。

所以,任何人都可以发现问题所在吗?

java amazon-web-services maven amazon-s3 pom.xml
1个回答
0
投票

documentationAmazonS3ClientBuilder声明此类未公开public无参数构造函数。这意味着您不能从类中调用new AmazonS3ClientBuilder()

幸运的是,此类提供了两个static工厂方法;其中一种方法AmazonS3ClientBuilder#defaultClient创建一个AmazonS3ClientBuilder#defaultClient实例(客户端),另一种方法AmazonS3创建一个生成器实例。

知道这一点,您可以将代码替换为以下代码段之一:

AmazonS3ClientBuilder#standard

或:

AmazonS3ClientBuilder#standard
© www.soinside.com 2019 - 2024. All rights reserved.