jsch实现文件上传的代码实例

牧野流冰87      2022-02-08     389

关键词:

package com.vcredit.ddcash.monitor.sendmail;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.Vector;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.ChannelSftp.LsEntry;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

/**
* created by ding 2016-12-02 17:28 Friday
* */
public class FtpsFileList {
private static final Logger LOG = LoggerFactory.getLogger(FtpsFileList.class);

public static void main(String[] args) {
listFileNames("****","**", "root", "}KCxBZC6IO]hWC>CfDkgD<41WhTP(", "/usr");

}

private static List<String> listFileNames(String host, int port, String username, final String password,
String dir) {
List<String> list = new ArrayList<String>();
ChannelSftp sftp = null;
Channel channel = null;
Session sshSession = null;
try {
JSch jsch = new JSch();
jsch.getSession(username, host, port);
sshSession = jsch.getSession(username, host, port);
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
LOG.debug("Session connected!");
channel = sshSession.openChannel("sftp");
channel.connect();
LOG.debug("Channel connected!");
sftp = (ChannelSftp) channel;
// 文件上传 下面这种方式也可以
// File file = new File("15888888_back_cut.jpg");
// file.getAbsolutePath();
// if (!file.exists()){
// file.createNewFile();
// }
// FileInputStream in = new FileInputStream(file);
// sftp.put(in, "/usr/local/ding/15888888_back_cut.jpg1");

// sftp.put(src, dst);//src本地文件,dst 服务器上的文件
sftp.put("15888888_back_cut.jpg", "/usr/local/ding/");
// 文件下载
sftp.cd("/usr/local/ding/");
// sftp.get(src, dst); src为服务器上的文件,dst问本地的目录,如果只是路径 ,默认文件名一致
sftp.get("/usr/local/ding/15888888_back_cut.jpg", "D:/");

Vector<?> vector = sftp.ls(dir);
for (Object item : vector) {
LsEntry entry = (LsEntry) item;
System.out.println(entry.getFilename());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeChannel(sftp);
closeChannel(channel);
closeSession(sshSession);
}
return list;
}

private static void closeChannel(Channel channel) {
if (channel != null) {
if (channel.isConnected()) {
channel.disconnect();
}
}
}

private static void closeSession(Session session) {
if (session != null) {
if (session.isConnected()) {
session.disconnect();
}
}
}
}













































































jsch-java实现的sftp(文件上传详解篇)(代码片段)

JSch是JavaSecureChannel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 本文只介绍如何使用JSch实... 查看详情

jsch-java实现的sftp(文件上传详解篇)

  JSch是JavaSecureChannel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。  本文只介绍如何使用JSch... 查看详情

用jsch实现sftp文件上传

JSchjsch=newJSch();jsch.getSession(username,host,port);SessionsshSession=jsch.getSession("FTP","192.168.1.13",22);sshSession.setPassword("FTP");PropertiessshConfig=newProperties();sshConfig.put("StrictHostKeyChecking","no");sshSession.setConfig(sshCo... 查看详情

jsch-java实现的sftp(文件上传详解篇)(代码片段)

JSch是JavaSecureChannel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 本文只介绍如何使用JSch实... 查看详情

jsch-java实现的sftp(文件下载详解篇)

上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch实现文件下载的功能。并介绍一些SFTP的辅助方法,如cd,ls等。 同样,JSch的文件下载也支持三种传输模式:OVERWRITE,RESUME和APPEND,请参考上篇随笔:JSch-Java实... 查看详情

java实现sftp上传下载文件及遇到的问题(代码片段)

本文记录一下使用JSch去操作SFTP上传和下载文件功能的工具类,以及实际遇到的两个问题。最近工作中用到了JSch去操作SFTP文件的上传和下载,本文记录一下封装的一个工具类,以及实际遇到的两个问题。SFTP(SecureFileTransferProtoco... 查看详情

java通过ssh向服务器上传下载删除文件和操作linux

...2.4拓展功能java使用命令操作linux1JSch介绍JSch是SSH2的纯Java实现。JSch允许您连接到sshd服务器并使用端口转发,X11转发,文件传输等,您可以将其功能集成到您自己的Java程序中。本文主要介绍利用JSch实现sft 查看详情

javaweb实现文件上传下载功能实例解析(好用)(代码片段)

 转:转:http://www.cnblogs.com/xdp-gacl/p/4200090.htmlJavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。  对于文件上传,... 查看详情

javasftp文件上传下载及批量下载

....jcraft.com/jsch/2.jsch简介JSch(JavaSecureChannel)是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。SFTP(SecureFileTransferProtocol)安全文件... 查看详情

jsch实现javasftp上传,在非root用户下出现permissiondined异常,

用chomod(509,“xxx”)方法也未能改变文件的权限参考技术A这个正常,应该是你当前上传用户在上传位置没有权限造成的,权限应该在服务器端修改本回答被提问者和网友采纳 参考技术B如果账号有管理员权限,可执行sudochmod-R7... 查看详情

Java SFTP使用JSch上传,但是如何覆盖当前文件?

】JavaSFTP使用JSch上传,但是如何覆盖当前文件?【英文标题】:JavaSFTPuploadusingJSch,buthowtooverwritethecurrentfile?【发布时间】:2013-07-0215:25:38【问题描述】:我正在尝试使用JSch将两个文件上传到带有SFTP的服务器。如果目录为空,则... 查看详情

java怎么实现sftp上传文件夹,包括整个目录?

java怎么实现FTP上传文件夹,包括整个目录?我现在用的是JSch实现的只能上传一个文件,如果要实现上传文件夹,也可以实现,但不知道有更好的方法不,那个做过类似的功能,请赐教,先说谢谢!有列子和代码更好!参考技术A... 查看详情

rest实现多文件上传(代码片段)

目录1实例代码2遇到的坑3请求实例1实例代码以下代码都是经过测试可直接使用@ApiOperation(value="上传多文件",notes="上传多文件")@ApiResponses(@ApiResponse(code=503,message="服务不可用"),@ApiRespons 查看详情

jsch网络工具包的使用及源码简析(代码片段)

...足;二、Jsch的基本介绍基本介绍JSch是SSH2的一个纯Java实现。它允许你连接到一个sshd服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的程序中。同时该项目也提供一个J2ME版本用来... 查看详情

使用JSch库上传重试机制

...ary【发布时间】:2017-11-2012:26:48【问题描述】:我有一个文件要上传(比如abc.pdf)。我第一次想将此文件作为临时文件上传(比如abc.pdf.temp)。然后,如果文件成功传输(完全传输),那么我需要将其重命名为其原始名称(abc.p... 查看详情

通过jsch编写上传下载文件

packagecom.hct.util;/***@作者:HCT*@时间:2016年12月29日下午3:13:20*@描述:**/importjava.io.*;importjava.util.*;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importcom.jcraft.jsch.*;publicclassUpAndDo 查看详情

jsch连接sftp后连接未释放掉问题排查(代码片段)

项目中通过jsch中的sftp实现上传下载文件。代码上了服务器之后,内存飙升,逐渐把swap区也占满,通过top监控未发现占用内存的进程,通过查找sshd进程,发现服务器多了很多sftp的进程没有被关闭。刚开始以为是sftp公共方法设计... 查看详情

使用jsch实现sftp文件传输

1、JSch开发包下载http://www.jcraft.com/jsch/目前最新版本为: jsch - 0.1.512、简单例子,列出指定目录下的文件列表import  java.util.Properties;import  java.util.Vector;import  com.jcraft.jsc 查看详情