gpt4 book ai didi

java - 使用java将图像保存到SFTP服务器

转载 作者:行者123 更新时间:2023-11-30 07:03:13 25 4
gpt4 key购买 nike

public static void main(String[] args) {
String SFTPHOST = "10.20.30.40";
int SFTPPORT = 22;
String SFTPUSER = "username";
String SFTPPASS = "password";
String SFTPWORKINGDIR = "/export/home/kodehelp/";

Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;

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();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
URL url = new URL("https://65.media.tumblr.com/839a07990f2b1ffa32065513c6224493/tumblr_oe6t3aYpHc1qfilt7o1_500.jpg");
BufferedImage image = null;
image = ImageIO.read(url);

**File f = new File(FILETOTRANSFER);
channelSftp.put(new FileInputStream(f), f.getName());**
}catch(Exception ex){
ex.printStackTrace();
}

}

我不知道如何将图像存储到SFTP服务器。我很困惑该写什么而不是这两行

File f = new File(FILETOTRANSFER);

channelSftp.put(new FileInputStream(f), f.getName());

我正在使用 JSCH 库来连接 SFTP

最佳答案

问题在于您将图像加载到 BufferedImage 中,但这不是可以直接写入 SFTP 服务器的表示形式。

直接打开 URL 上的 InputStream 并将其保存到 SFTP 服务器要容易得多。 (使用url.openStream())

然后,您需要想出一个合适的文件名 - 这里我采用最后一个斜杠后面的 URL 的最后一部分,这与您在代码中所做的效果相同。

URL url = new URL(
"https://65.media.tumblr.com/839a07990f2b1ffa32065513c6224493/tumblr_oe6t3aYpHc1qfilt7o1_500.jpg");
String path = url.getPath();
channelSftp.put(url.openStream(),path.substring(path.lastIndexOf('/')+1));

关于java - 使用java将图像保存到SFTP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40540529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com