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

San40S

Well-known member
15.04.2009
69
0
#1
Доброго времени суток.
Помогите/подскажите как решить вопрос.

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

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#2
googleit: connect to sftp java

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 570
263
#3
есть возможности ОС...
винда:
- команда at
- putty (а конкретно plink) http://the.earth.li/~sgtatham/putty/0.53b/...c/Chapter7.html

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#4
Неожиданно lmike предложил вариант без жавы ;)
А код по ссылке не смотрел, он стоит внимания?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 570
263
#5
А код по ссылке не смотрел, он стоит внимания?
код-как-код, а сайт http://www.jcraft.com/jsch/ интересный, вызывает уважение:
Participants
Dr. Atsuhiko Yamanaka, President & CEO
Dr. Yamanaka is in charge of developing, marketing and supporting products based on Java technology to customers worldwide.
Before Dr. Yamanaka found JCraft at March 1998, he had joined NEC Corporation for two years and worked on researching and developing softwares.
Dr. Yamanaka holds both a master's degree and a doctorate in information science from the Tohoku University, Japan. He also received a bachelor's degree in information science at the Tohoku University. His subjects are related to Mathematical Foundations of Computer Science, especially the Constructive Logic and the design of the functional programming languages.
Добавлено:
Неожиданно lmike предложил вариант без жавы
если можно обойтись стандарными средствами, а не тянуть в домину - я всегда "за"
стандартными я называю именно "средства" поддерживающие стандарты :) , а не костыли и искажения, навязанные проприетарными вендорами
 

savl

Lotus team
28.10.2011
2 131
102
#6
Есть еще 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();