0

I have Spring integreation sftp config

@Bean
  public SessionFactory<ChannelSftp.LsEntry> sftpSessionFactory() {
    final DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(false);
    factory.setHost(properties.getHost());
    factory.setPort(properties.getPort());
    factory.setUser(properties.getUser());
    factory.setPassword(properties.getPassword());
    factory.setAllowUnknownKeys(true);

    return factory;

  @Bean
  @ServiceActivator(inputChannel = "toSftpChannel")
  public MessageHandler handler(@Value("${sftp.folder}") final String remoteDirectory) {
    final SftpMessageHandler handler = new SftpMessageHandler(sftpSessionFactory());
    handler.setRemoteDirectoryExpressionString(remoteDirectory);
    handler.setAutoCreateDirectory(true);
    return handler;
  }

And I need to upload 10-20 xml files to SFTP, (each has size ~150MB)

The main problem, that I receive SftpException. InputStream is closed or Socket exception. I can`t use Cashed session, as customer restrict this.

also, I put files with a parallel stream

Arrays.stream(files)
    .parallel()
    .forEach(sftpService::uploadFile);

So, what is the safest way to upload all files to sftp.

Neewbie
  • 59
  • 1
  • 2
  • 14

1 Answers1

0

Solved by deleting parallel streams and opening each session for each uploading

Neewbie
  • 59
  • 1
  • 2
  • 14