Отправить файл SFTP из базы данных без фактического создания файла - PullRequest
0 голосов
/ 03 августа 2020

Я хочу отправить данные из базы данных. В настоящее время наш SFTP настроен так (с использованием библиотеки apache commons vsf2).

    try(StandardFileSystemManager manager = new StandardFileSystemManager())
        File file = generateFileFromDatabase();
        manager.init();
   
        FileSystemOptions opts = new FileSystemOptions();
        SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
                opts, "no");
        SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
        SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);

        // Create localfile object
        FileObject localFile = manager.resolveFile(file.getAbsolutePath());

        // Create remote file object
        FileObject remoteFile = manager.resolveFile(sftpUri, opts);

        // Copy local file to sftp server
        remoteFile.copyFrom(localFile, Selectors.SELECT_SELF);


    } catch (Exception ex) {
        ex.printStackTrace();
    }

Однако generateFileFromDatabase () работает, вызывая ключевое слово new, как в

       return new File();

Я не хочу этого, потому что это сохраняет новый файл в файловой системе каждый раз, когда вызывается generateFileFromDatabase (). Есть ли способ создать File(), не сохраняя его в файловой директории?

...