JavaでSFTPを介してファイルを転送する方法は? SFTPクライアントのサンプルコードが必要です。アプリケーションにSFTPサーバーを埋め込みたいので、クライアントはファイルをアプリケーションに送信できるはずです。
PS:これはSFTPクライアントを要求されました。そして、この質問は他の2つの質問の重複ではありません。
SFTPを実装するには、以下のリンクを見つけてください。
https://codetransient.wordpress.com/2019/06/22/sftp-secured-file-transfer-protocol/
このコードを試してください。
public void send (String fileName) {
String SFTPHOST = "Host:IP";
int SFTPPORT = 22;
String SFTPUSER = "username";
String SFTPPASS = "password";
String SFTPWORKINGDIR = "file/to/transfer";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
System.out.println("preparing the Host information for sftp.");
try {
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
session.setPassword(SFTPPASS);
Java.util.Properties config = new Java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
System.out.println("Host connected.");
channel = session.openChannel("sftp");
channel.connect();
System.out.println("sftp channel opened and connected.");
channelSftp = (ChannelSftp) channel;
channelSftp.cd(SFTPWORKINGDIR);
File f = new File(fileName);
channelSftp.put(new FileInputStream(f), f.getName());
log.info("File transfered successfully to Host.");
} catch (Exception ex) {
System.out.println("Exception found while tranfer the response.");
} finally {
channelSftp.exit();
System.out.println("sftp Channel exited.");
channel.disconnect();
System.out.println("Channel disconnected.");
session.disconnect();
System.out.println("Host Session disconnected.");
}
}