我想從sftp服務器使用JSch檢索一些文件,但我收到以下錯誤。權限被拒絕使用JSch
3: Permission denied
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)
at com.company.common.sftp.impl.managedFile.moveFiles(managedFile.java:712)
下面是代碼:
private List<String> moveFiles(String prefixFileName, String path) {
Session session = getSession();
Channel channel = connect(session);
ChannelSftp channelSftp = null;
try {
channelSftp = (ChannelSftp)channel;
channelSftp.cd(_workingDir);
...
}
...
finally {
channel.disconnect();
session.disconnect();
}
}
public Session getSession() {
Session session = null;
JSch jsch = new JSch();
session = jsch.getSession(_user,_server,_port);
session.setPassword(_password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", _strictHostKeyChecking);
session.setConfig(config);
session.connect();
return session;
}
public static Channel connect(Session session) {
Channel channel = null;
channel = session.openChannel("sftp");
channel.connect();
return channel;
}
_workingDir
是用下面的值的屬性:/user_files
。 這兩個文件夾(源和目標)位於Windows服務器上,並且所有權限都授予任何用戶。但由於某些原因,它不會讓我更改源(遠程)服務器中的當前目錄。
有什麼想法?
UPDATE: SFTP服務器是freeFTPd和使用SFTP客戶端(如FileZilla中)我可以移動的文件沒有問題
您可以添加FileZilla窗口的屏幕截圖,顯示目錄'/ user_files'? –