2014-01-29 1 views
3

Я хочу, чтобы ftp-файлы были удалены, и я должен использовать для этого прокси-сервер. Я был в состоянии подключиться к месту FTP с помощью следующей команды:Как FTP-файл с использованием прокси-сервера с библиотеками JSCH

sftp -o "ProxyCommand /usr/bin/nc -X connect -x <proxy_host>:<proxy_port> %h %p" [email protected]_server: 

Но я хочу, чтобы автоматизировать этот процесс передачи файлов и я использую JSch для FTP и фрагмент кода ниже:

String sourceFile = sourceDir + fileName; 
    JSch jsch = new JSch(); 
    int port = Integer.parseInt(getFtpPort()); 
    Session session = jsch.getSession(getUserName(), getHost(), port); 
    session.setConfig(STRICT_HOST_CHECKING, ANSWER); 
    session.setProxy(new ProxyHTTP(<proxy_host>, <proxy_port>)); 
    session.setPassword(getPassword()); 
     session.connect(); 
    Channel channel = session.openChannel(FILE_PROTOCOL); 
    channel.connect(); 
    sftpChannel = (ChannelSftp) channel; 
    sftpChannel.cd(desDir); 
    File fileToTransfer = new File(sourceFile); 
    sftpChannel.put(new FileInputStream(fileToTransfer), fileName); 

С выше кода я получаю следующее исключение:

Caused by: com.jcraft.jsch.JSchException: ProxyHTTP: java.io.IOException 
    at com.jcraft.jsch.ProxyHTTP.connect(ProxyHTTP.java:158) 
    at com.jcraft.jsch.Session.connect(Session.java:210) 
    at com.jcraft.jsch.Session.connect(Session.java:162) 
+0

Вы когда-нибудь выясните? Опираясь на ту же проблему, используя HTTP-прокси –

ответ

1

Это работает для меня.

JSch jsch = new JSch(); 
java.util.Properties config = new java.util.Properties(); 
Session session = jsch.getSession(RemoteUserName, RemoteIpAddr, RemotePortNo); 
session.setPassword(RemotePassword); 
config.put("StrictHostKeyChecking", "no"); 
session.setConfig(config); 
session.setProxy(new ProxyHTTP(ProxyName, ProxyPort)); 
session.connect(); 
+0

Это сработало для меня. – Manish

1

Это работает для меня

ProxyHTTP proxy = new ProxyHTTP("192.168.10.1",80) 
proxy.setUserPasswd("username","password"); 
session.setProxy(proxy); 

 Смежные вопросы

  • Нет связанных вопросов^_^