Взять файл из SFTP

Тема в разделе "Lotus + Java + LS2J", создана пользователем San40S, 20 сен 2011.

  1. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Доброго времени суток.
    Помогите/подскажите как решить вопрос.

    Дано:
    БД в Lotus Notes и XML-файл на SFTP. Доступ на SFTP привязан к одному IP-шнику. Авторизация по логину и ключу.

    Задача:
    Достать XML-файл с SFTP и затянуть в БД. Файлы на SFTP выкладываются с определенной периодичностью и обрабатывать их нужно, соответственно, тоже с заданной периодичностью - то есть агентом.

    Проблема:
    Как достать файл с этого самого SFTP в Lotus Notes?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    googleit: connect to sftp java

    Добавлено:
    Код (Text):
    http://stackoverflow.com/questions/14617/java-what-is-the-best-way-to-sftp-a-file-from-a-server
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    есть возможности ОС...
    винда:
    - команда at
    - putty (а конкретно plink) http://the.earth.li/~sgtatham/putty/0.53b/...c/Chapter7.html

    *nix:
    - cron (планировщик)
    - стандартный ssh клиент (как пр-ло - идёт в комплекте)

    набросать простенький скрипт, кот. будет класть файло, с ремот хоста, в нужный каталог, по расписанию (задействуем cron или at)
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Неожиданно lmike предложил вариант без жавы ;)
    А код по ссылке не смотрел, он стоит внимания?
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    код-как-код, а сайт http://www.jcraft.com/jsch/ интересный, вызывает уважение:
    Добавлено:
    если можно обойтись стандарными средствами, а не тянуть в домину - я всегда "за"
    стандартными я называю именно "средства" поддерживающие стандарты :) , а не костыли и искажения, навязанные проприетарными вендорами
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Есть еще zehon достаточно прост. Использовал его.
    Получение файла:
    Код (C++):
    SFTPClient SFTPObj = new SFTPClient(host, username,password);
    try {
    int status = SFTPObj.getFile(ImportFile, sftpFolder, writeToLocalFolder);
    if(FileTransferStatus.SUCCESS == status){
    System.out.println("Copy to " + writeToLocalFolder);
    }
    else if(FileTransferStatus.FAILURE == status){
    System.out.println("Can not copy from sftp");
    }
    }
    catch(FileTransferException ex){
    ex.getCause().printStackTrace();
    }
    SFTPClient.closeCache();
    Отправка:
    Код (C++):
    SFTPClient SFTPObj = new SFTPClient(host, username,password);
    try {
    int status = SFTPObj.sendFile(tempdir() + "Export.xml", sftpFolder);
    if(FileTransferStatus.SUCCESS == status){
    System.out.println("Send");
    }
    else if(FileTransferStatus.FAILURE == status){
    System.out.println("Can not sent sftp");
    }
    }
    catch(FileTransferException ex){
    ex.getCause().printStackTrace();
    }
    SFTPClient.closeCache();
     
Загрузка...

Поделиться этой страницей