English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Nachdem ich einige Informationen über das Upload von Dateien mit SFTP gefunden habe, habe ich eine Zusammenfassung erstellt, um zukünftige Abfragen zu erleichtern. Hier ist der spezifische Code:
/** * Datei auf Server hochladen * * @param filePath * Dateipfad * @param channelSftp * channelSftp-Objekt * @return */ public static boolean uploadFile(String filePath, ChannelSftp channelSftp) { OutputStream outstream = null; InputStream instream = null; boolean successFlag = false; try { File isfile = new File(filePath); if (isfile.isFile()) { outstream = channelSftp.put(isfile.getName()); File file = new File(filePath); if (file.exists()) { instream = new FileInputStream(file); byte b[] = new byte[1024]; int n; while ((n = instream.read(b)) != -1) { outstream.write(b, 0, n); } outstream.flush(); } successFlag = true; } } catch (Exception e) { e.printStackTrace(); } finally { try { if (instream != null) { instream.close(); } if (outstream != null) { outstream.close(); } } catch (IOException e) { e.printStackTrace(); } } return successFlag; } private static Session initJschSession() throws JSchException { int ftpPort = 0; String ftpHost = ""; String port = "00"; //Portnummer von sftp String ftpUserName = ""; //Benutzername String ftpPassword = ""; //链接的密码 String privateKey = ""; // String passphrase = ""; if (port != null && !port.equals("")) { ftpPort = Integer.valueOf(port); } JSch jsch = new JSch(); // 创建JSch对象 if (StringUtils.isNotBlank(privateKey) && StringUtils.isNotBlank(passphrase)) { jsch.addIdentity(privateKey, passphrase); } if (StringUtils.isNotBlank(privateKey) && StringUtils.isBlank(passphrase)) { jsch.addIdentity(privateKey); } jsch.getSession(ftpUserName, ftpHost, ftpPort); Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // 根据用户名,主机ip,端口获取一个Session对象 if (StringUtils.isNotBlank(ftpPassword)) { session.setPassword(ftpPassword); // 设置密码 } return session; } /** * 获取ChannelSftp链接 * * @param timeout * 超时时间 * @return 返回ChannelSftp对象 * @throws JSchException */ public static ChannelSftp getChannelSftp(Session session, int timeout) throws JSchException { Channel channel = null; Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); // 为Session对象设置properties session.setTimeout(timeout); // 设置timeout时间 session.connect(); // Verbinden Sie über die Sitzung channel = session.openChannel("sftp"); // Öffnen Sie den SFTP-Kanal channel.connect(); // Verbinden Sie die Verbindung zum SFTP-Kanal return (ChannelSftp) channel; } /** * Trennen Sie die SFTP-Verbindung * * @param session * Sitzung * @param channel * Kanal */ public static void closeConnection(Channel channel, Session session) { try { if (session != null) { session.disconnect(); //Schließen Sie die Sitzungsverbindung } if (channel != null) { channel.disconnect(); //Trennen Sie die Verbindung } } catch (Exception e) { e.printStackTrace(); } }
Die hier verwendeten Benutzernamen und Passwörter wurden selbst eingerichtet. Die Methode wurde einfach verpackt, um die Verwendung zu erleichtern.
Hier stellt der Redakteur eine einfache Verwendung von Java zur Übertragung von Dateien auf dem Server über SFTP vor. Hoffentlich hilft es Ihnen weiter. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht, und der Redakteur wird rechtzeitig antworten. Vielen Dank auch für die Unterstützung der Website Anlaufstelle für Anleitungen!
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet bezogen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie urheberrechtlich relevante Inhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3Hinweis: Bitte ersetzen Sie bei der E-Mail-Sendung # durch @ und melden Sie Missbrauch, und fügen Sie relevante Beweise bei. Sobald überprüft, wird die Website den mutmaßlich urheberrechtswidrigen Inhalt sofort löschen.