Приложение загрузки файла не работает как jar - PullRequest
0 голосов
/ 07 января 2019

Spring boot application. Пользователь выбирает сервер по своему выбору и файл в своей локальной системе, и файл получает SFTP на этот сервер.

Это работает: входной поток читает файл в папку в корневом проекте. Метод sftp нуждается в пути к файлу для работы. Поскольку я не могу получить путь к файлу в системе пользователей и просто получить файл, я передаю его локально, а затем указываю путь оттуда.

Это отлично работает при запуске моего проекта из intellij, а НЕ так прекрасно, когда упаковано в банку

После некоторого чтения похоже, что нехорошо вносить файл в банку. Любые идеи о маршруте, чтобы взять сейчас? Спасибо

public void SFTP(MultipartFile file, String friendlyName, String filePath) throws Exception {
    String host = "10.3.152.245"; //host:IP
    String user = "cloud";
    String password = "Password1";
    System.out.println("File path: " + filePath);
    try {
        String fileName = renameLocal(file);
        java.util.Properties config = new java.util.Properties();
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, 22);
        session.setPassword(password);

        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);

        session.connect();

        ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
        sftpChannel.connect();

        sftpChannel.cd("/");
        sftpChannel.cd(filePath);

        sftpChannel.put("\\upload-dir\\" + fileName, ".");
        sftpChannel.rename(filePath + "/" + fileName, filePath + "/" + file.getOriginalFilename());

        session.disconnect();
        sftpChannel.disconnect();

        Path path = FileSystems.getDefault().getPath(".\\upload-dir\\" + fileName);
        Files.delete(path);
    }catch (Exception e){
        throw new Exception();
    }
}

вышеописанный метод - это метод SFTP, который вызывается, когда пользователь загружает файл. Пользователь статического хоста и проход на данный момент. Как видите, я помещаю файл локально (метод не здесь) в каталог загрузки. Затем предоставив upload-dir \ filename для метода sftpChannel.put

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