Java.net.SocketException: сброс соединения при чтении файла из S3 - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь прочитать некоторые файлы из S3 и выполнить некоторую обработку для каждого файла.Я могу просмотреть некоторые файлы, но продолжаю получать Java.net.SocketException: сброс соединения в той же строке в определенном файле во время обработки.Тем не менее, рассматриваемый файл должен быть в порядке, потому что я могу обработать его локально, используя тот же класс и метод (convertUtils.convert ()).

Класс обслуживания:

public class FileService {

  @Inject
  private S3Utils s3utils;

  private ConversionUtils conversionUtils = new ConversionUtils();

  public void processFile() {
    List<S3ObjectSummary> files = s3utils.getAllFiles();
    List<S3Object> unprocessedFiles = s3utils.getUnprocessedFiles(files);

    for(S3Object file: unprocessedFiles) {
      InputStream content = file.getObjectContent();
      List<Record> records = conversionUtils.convert(content); //Exception thrown here
    }
  }
}

Класс S3Utils:

@Component
public class S3utils {
  @Inject AmazonS3 amazonS3;

  public List<S3ObjectSummary> getAllFiles() {
    ListObjectsV2Request request = new ListObjectsV2Request().withBucketName('something').withPrefix('some_prefix');
    ListObjectsV2Result result = amazonS3.listObjectsV2(request);;

    return result.getObjectSummaries();
  }

  public List<S3Object> getUnprocessedFiles(List<S3ObjectSummary> files) {
    //do some filtering here

    List<S3Object> unprocessedFiles = new ArrayList<>();
    for (S3ObjectSummary summary : filteredSummaries) {
      S3Object s3Object = amazonS3.getObject(new GetObjectRequest(summary.getBucketName(), summary.getKey()));
      unprocessedFiles.add(S3Object);
    }
    return unprocessedFiles;
  }
}

Класс конфигурации:

@Configuration
public class Config {
  @Bean
  public AmazonS3 amazonS3() {
    return AmazonS3ClientBuilder.standard().withCredentials(new DefaultAWSCredentialsProviderChain()).build();
  }
}

Я читал некоторые другие потоки с похожими ошибками, где проблема заключалась в том, что клиент AmazonS3 собирал мусор и поэтому закрывал поток, ноМне интересно, так ли это здесь.Есть идеи по поводу проблемы?Спасибо.

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