无法从AmazonS3下载jar文件

时间:2018-05-28 14:03:30

标签: java amazon-web-services amazon-s3 jar

我正在尝试使用此接受答案的方法从S3下载jar文件:

https://stackoverflow.com/a/32822091/6532976

但是我收到了这个错误:

Error:(61, 36) java: constructor GetObjectRequest in class com.amazonaws.services.mediastoredata.model.GetObjectRequest cannot be applied to given types; required: no arguments found: java.lang.String,java.lang.String reason: actual and formal argument lists differ in length

我理解GetObjectRequest不需要任何参数,但我发现了一些关于如何使用GetObjectRequest的在线示例: https://www.programcreek.com/java-api-examples/?api=com.amazonaws.services.s3.model.GetObjectRequest明确地将参数传递给GetObjectRequest。

那么,从S3下载JAR文件的正确程序是什么?

编辑:导致错误的代码

    AWSCredentials myCredentials = new BasicAWSCredentials(access_key, secret_key);
    AmazonS3Client s3Client;
    s3Client = new AmazonS3Client(myCredentials);


    GetObjectRequest request = new GetObjectRequest(bucketname, jarFilePathInBucket);
    S3Object object = s3Client.getObject(request);
    S3ObjectInputStream objectContent = object.getObjectContent();
    FileOutputStream fos = new FileOutputStream(pathToJarFile);

    byte[] buffer = new byte[4096];

    int buf = 0;
    while((buf = objectContent.read(buffer)) > 0)
    {
        fos.write(buffer, 0, buf);
    }
    fos.close();

1 个答案:

答案 0 :(得分:0)

您还没有发布您的代码,但实际上没有替代方案。

AWS3 Java客户端库包含名为GetObjectRequest 2 类。当你import上课时,你需要确保选择合适的课程。

  1. com.amazonaws.services.mediastoredata.model.GetObjectRequest
  2. com.amazonaws.services.s3.model.GetObjectRequest < - 这是正确的
  3. 另一个也称为GetObjectRequest的类不带构造函数参数。你需要的那个有多个重载的构造函数,包括一个需要2个字符串的重载。

    在文件的顶部,您需要有一行

    import com.amazonaws.services.s3.model.GetObjectRequest