无法将图像上传到亚马逊服务

时间:2017-02-10 13:43:07

标签: java amazon-s3 aws-sdk

我正在尝试使用波纹管方法将图像文件上传到amazon s3服务。但它给出了这样的异常错误。

  1. 线程“Thread-0”中的异常java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory
  2. 引起:java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory

    私有静态URL uploadFile(文件文件){

    try {
        JSONObject jsonObject = ApiConnector.getBucketDetails();
        JSONObject ob = jsonObject.getJSONObject("result");
        System.out.println("JSon result " + ob.toString());
    
        fileName = String.valueOf(System.currentTimeMillis());
    
    
        BasicAWSCredentials awsCreds = new BasicAWSCredentials(ob.getString("access_key"), ob.getString("secret_key"));
        client = new AmazonS3Client(awsCreds);
        newBucket = new Bucket(ob.getString("bucket_name"));
        PutObjectRequest putObjectRequest = new PutObjectRequest(newBucket.getName(), fileName, file);
        putObjectRequest.withCannedAcl(CannedAccessControlList.PublicRead);
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(file.length());
        putObjectRequest.withMetadata(objectMetadata);
        client.putObject(putObjectRequest);
    
        return client.generatePresignedUrl(ob.getString("bucket_name"), fileName, getDate());
    } catch (JSONException ex) {
        ex.printStackTrace();
        return null;
    }}
    

1 个答案:

答案 0 :(得分:0)

看起来您的项目缺少公共日志记录的依赖项(可能由其他依赖项之一引用)。您可以尝试在pom.xml中添加以下内容:

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

您可以看到版本here

<强>更新

如果您的项目不是maven项目,那么您需要下载commons logging jar并将其放在lib目录中。您可以从here下载jar。