Member 13828418 Ответов: 0

Как загрузить файл с удаленного сервера с помощью библиотеки jsch ?


Всем привет
Я пытаюсь загрузить файлы с sftp сервера и не знаю как это сделать
Я покажу вам свой код и скажу, где я ошибся :)

Что я уже пробовал:

Я попробовал это с помощью приведенного ниже кода и когда я тестировал его с почтальоном я получил 404 не найден в качестве ответа :
может быть, это означает, что он не нашел файл для загрузки ?
сосредоточьтесь на линиях после
sftp.cd(AppLogDIR);


@Override
    public org.springframework.core.io.Resource downloadFile(String filename) {
 
        String HOST = "HOST@adresse";
        int PORT = 22;
        String USER = "username";
        String PASS = "password";
        String AppLogDIR = "/path/to/your/remote/file/";
        filename = null;
        try {
            JSch jsch = new JSch();
            session = jsch.getSession(USER, HOST, PORT);
            session.setPassword(PASS);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
            channel = session.openChannel("sftp");
            channel.connect();
            sftp = (ChannelSftp) channel;
            sftp.cd(AppLogDIR);
 
            byte[] buffer = new byte[1024];
            BufferedInputStream bis = new BufferedInputStream(
                    sftp.get("remoteFile.log"));
            File newFile = new File("C:/remoteFile.log"); OutputStream os = new FileOutputStream(newFile);
            BufferedOutputStream bos = new BufferedOutputStream(os);
            int readCount;
            while ((readCount = bis.read(buffer)) > 0) {
                System.out.println("Writing: ");
                bos.write(buffer, 0, readCount);
            }
 
            bis.close();
            bos.close();
 
        } catch (Exception ex) {
            ex.printStackTrace();
        }
 
        return newFile;
    }




@GetMapping(value="/download/{filename}")
public ResponseEntity<Object> downloadFile(@PathVariable String filename) {
    Resource file=sftpClient.downloadFile(filename);
    return ResponseEntity.ok()
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
            .body(file);
}


я действительно гуглил и искал решение но ни один из них не решил мою проблему вот почему я возвращаюсь к вам ребята

Я буду так благодарна вам за помощь !

Richard Deeming

Если вы хотите, чтобы кто-то помог вам решить проблему, то вы должны сказать нам, в чем проблема!

Нажмите на зеленую ссылку "улучшить вопрос" и обновите свой вопрос с правильным описанием проблемы. Включите полную информацию о любых ошибках и не забудьте указать, к какой строке кода они относятся.

Member 13828418

Ну вот , я обновил свой вопрос :)

Richard Deeming

Я не знаком с Spring, но ошибка 404 подсказала бы мне, что запрос не сопоставляется с вашей конечной точкой должным образом.

Member 13828418

Я постараюсь сделать все возможное, чтобы найти, где проблема :) спасибо

0 Ответов