Я пытаюсь скопировать файл на сервере из одного каталога в другой с помощью Jsch. Я использую SFTP-протокол put и получаю методы для выполнения этой задачи. Я делаю так, потому что у меня нет доступа к серверу на shell. Ниже приведен пример моего кода и исключение, которое я получаю. Может кто-нибудь, пожалуйста, дайте мне знать, как его решить.Скопируйте файл на удаленном сервере из одного каталога в другой с помощью Jsch
OutputStream outputStream = null;
InputStream inputStream = 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");
config.put("PreferredAuthentications", "password");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
inputStream = channelSftp.get(fromFilename);
channelSftp.put(inputStream,toFilename);
} catch(Exception e){
e.printStackTrace();
} finally {
if(inputStream != null)
inputStream.close();
if(outputStream != null)
outputStream.close();
channelSftp.exit();
channel.disconnect();
session.disconnect();
}
Вот за исключением
4: java.io.IOException: error: 4: RequestQueue: unknown request id 12
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:689)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:540)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:492)
вы можете попробовать скачать файл, а затем поместить его в другой каталог .... –
Да, я могу это сделать. Но я просто не хочу загружаться на локальный сервер, а затем удалять его с локального сервера. Любая идея о том, почему этот подход не работает – pinky