Java 如何使用jsch和base64编码将文件传输到sftp
我正在将文件编码为base64字符串。我想使用JSch将其传输到sftp文件夹,而不创建本地文件。我该怎么做呢?您可能会使用这种方法Java 如何使用jsch和base64编码将文件传输到sftp,java,base64,sftp,jsch,Java,Base64,Sftp,Jsch,我正在将文件编码为base64字符串。我想使用JSch将其传输到sftp文件夹,而不创建本地文件。我该怎么做呢?您可能会使用这种方法 void put(InputStream src, String dst, SftpProgressMonitor monitor, int mode) 在课堂上。JSch还提供了关于如何设置和中断SFTP会话的详细说明。我在ChannelSftp类中使用了putString src、String dst方法 private void getConnection
void put(InputStream src, String dst, SftpProgressMonitor monitor, int mode)
在课堂上。JSch还提供了关于如何设置和中断SFTP会话的详细说明。我在ChannelSftp类中使用了putString src、String dst方法
private void getConnection(String username, String hostname, String password) {
JSch jsch = new JSch();
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
try {
session = jsch.getSession(username, hostname, 22);
session.setConfig(config);
session.setPassword(password);
session.connect();
channel = session.openChannel(CHANNEL_TYPE);
channel.connect();
} catch (JSchException e) {
e.printStackTrace();
}
}
private void disconnectConnections() {
if (channel.isConnected()) {
channel.disconnect();
}
if (session.isConnected()) {
session.disconnect();
}
}
private String getConfiguration(String key) {
return configuration.getString(key);
}
public void uploadToSftp(String sftpFileLocation, String fileToBeUploaded, String filename) {
if (session == null || channel == null || !session.isConnected() || !channel.isConnected()) {
getConnection(getConfiguration(USERNAME), getConfiguration(HOST), getConfiguration(PASSWORD));
}
try {
channelSftp = (ChannelSftp) channel;
channelSftp.cd(sftpFileLocation);
byte[] data = BaseEncoding.base64().decode(fileToBeUploaded);
InputStream is = new ByteArrayInputStream(data);
channelSftp.put(is, filename);
disconnectConnections();
} catch (SftpException e) {
e.printStackTrace();
}
}
你好@shuti,你能展示一下这个场景的代码吗?等待您的回复。@Justin很抱歉延迟回复,我已经添加了相同的代码段