Невозможно загрузить файл jar из AmazonS3 - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь загрузить файл JAR из S3, используя подход этого принятого ответа:

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.

Итак, какова правильная процедура загрузки файла JAR из S3?

Редактировать: мой код, который вызывает ошибку

    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 голосов
/ 28 мая 2018

Вы еще не опубликовали свой код, но на самом деле альтернативы этому нет.

Клиентские библиотеки AWS3 Java содержат 2 классов с именем GetObjectRequest.Когда вы import класс, вы должны убедиться, что вы выбрали правильный.

  1. com.amazonaws.services.mediastoredata.model.GetObjectRequest
  2. com.amazonaws.services.s3.model.GetObjectRequest <- этоправильный </li>

Другой класс, который также называется GetObjectRequest, не принимает аргументов конструктора.В том, что вам нужно, есть несколько перегруженных конструкторов, включая одну перегрузку, которая принимает 2 строки.

В верхней части файла вам понадобится строка с текстом

import com.amazonaws.services.s3.model.GetObjectRequest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...