public class Sftp extends AbstractFtp
此类为基于jsch的SFTP实现
参考:https://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html
| Modifier and Type | Class and Description |
|---|---|
static class |
Sftp.Mode
JSch支持的三种文件传输模式
|
DEFAULT_CHARSET, ftpConfig| Constructor and Description |
|---|
Sftp(com.jcraft.jsch.ChannelSftp channel,
Charset charset)
构造
|
Sftp(FtpConfig config)
构造
|
Sftp(com.jcraft.jsch.Session session)
构造
|
Sftp(com.jcraft.jsch.Session session,
Charset charset)
构造
|
Sftp(String sshHost,
int sshPort,
String sshUser,
String sshPass)
构造
|
Sftp(String sshHost,
int sshPort,
String sshUser,
String sshPass,
Charset charset)
构造
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
cd(String directory)
打开指定目录,如果指定路径非目录或不存在返回false
|
void |
close() |
boolean |
delDir(String dirPath)
删除文件夹及其文件夹下的所有文件
|
boolean |
delFile(String filePath)
删除文件
|
void |
download(String src,
File destFile)
下载文件
|
Sftp |
get(String src,
String dest)
获取远程文件
|
com.jcraft.jsch.ChannelSftp |
getClient()
获取SFTP通道客户端
|
String |
home()
获取HOME路径
|
void |
init()
初始化
|
void |
init(com.jcraft.jsch.ChannelSftp channel,
Charset charset)
初始化
|
void |
init(FtpConfig config)
初始化
|
void |
init(com.jcraft.jsch.Session session,
Charset charset)
初始化
|
void |
init(String sshHost,
int sshPort,
String sshUser,
String sshPass,
Charset charset)
构造
|
List<String> |
ls(String path)
遍历某个目录下所有文件或目录,不会递归遍历
|
List<String> |
ls(String path,
Filter<com.jcraft.jsch.ChannelSftp.LsEntry> filter)
遍历某个目录下所有文件或目录,不会递归遍历
此方法自动过滤"."和".."两种目录 |
List<String> |
lsDirs(String path)
遍历某个目录下所有目录,不会递归遍历
|
List<com.jcraft.jsch.ChannelSftp.LsEntry> |
lsEntries(String path)
遍历某个目录下所有文件或目录,生成LsEntry列表,不会递归遍历
此方法自动过滤"."和".."两种目录 |
List<com.jcraft.jsch.ChannelSftp.LsEntry> |
lsEntries(String path,
Filter<com.jcraft.jsch.ChannelSftp.LsEntry> filter)
遍历某个目录下所有文件或目录,生成LsEntry列表,不会递归遍历
此方法自动过滤"."和".."两种目录 |
List<String> |
lsFiles(String path)
遍历某个目录下所有文件,不会递归遍历
|
boolean |
mkdir(String dir)
在当前远程目录(工作目录)下创建新的目录
|
Sftp |
put(String srcFilePath,
String destPath)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。覆盖模式
|
Sftp |
put(String srcFilePath,
String destPath,
Sftp.Mode mode)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。
|
Sftp |
put(String srcFilePath,
String destPath,
com.jcraft.jsch.SftpProgressMonitor monitor,
Sftp.Mode mode)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。
|
String |
pwd()
远程当前目录
|
Sftp |
reconnectIfTimeout()
如果连接超时的话,重新进行连接
|
void |
recursiveDownloadFolder(String sourcePath,
File destDir)
递归下载FTP服务器上文件到本地(文件目录和服务器同步)
|
String |
toString() |
boolean |
upload(String destPath,
File file)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与file文件名相同。
覆盖模式
|
exist, mkDirs, toParentpublic Sftp(String sshHost, int sshPort, String sshUser, String sshPass)
sshHost - 远程主机sshPort - 远程主机端口sshUser - 远程主机用户名sshPass - 远程主机密码public Sftp(String sshHost, int sshPort, String sshUser, String sshPass, Charset charset)
sshHost - 远程主机sshPort - 远程主机端口sshUser - 远程主机用户名sshPass - 远程主机密码charset - 编码public Sftp(FtpConfig config)
config - FTP配置public Sftp(com.jcraft.jsch.Session session)
session - Sessionpublic Sftp(com.jcraft.jsch.Session session,
Charset charset)
session - Sessioncharset - 编码public Sftp(com.jcraft.jsch.ChannelSftp channel,
Charset charset)
channel - ChannelSftpcharset - 编码public void init(String sshHost, int sshPort, String sshUser, String sshPass, Charset charset)
sshHost - 远程主机sshPort - 远程主机端口sshUser - 远程主机用户名sshPass - 远程主机密码charset - 编码public void init()
public void init(FtpConfig config)
config - FTP配置public void init(com.jcraft.jsch.Session session,
Charset charset)
session - Sessioncharset - 编码public void init(com.jcraft.jsch.ChannelSftp channel,
Charset charset)
channel - ChannelSftpcharset - 编码public Sftp reconnectIfTimeout()
AbstractFtpreconnectIfTimeout in class AbstractFtppublic com.jcraft.jsch.ChannelSftp getClient()
public String pwd()
pwd in class AbstractFtppublic String home()
public List<String> ls(String path)
ls in class AbstractFtppath - 遍历某个目录下所有文件或目录public List<String> lsDirs(String path)
path - 遍历某个目录下所有目录public List<String> lsFiles(String path)
path - 遍历某个目录下所有文件public List<String> ls(String path, Filter<com.jcraft.jsch.ChannelSftp.LsEntry> filter)
path - 遍历某个目录下所有文件或目录filter - 文件或目录过滤器,可以实现过滤器返回自己需要的文件或目录名列表public List<com.jcraft.jsch.ChannelSftp.LsEntry> lsEntries(String path)
path - 遍历某个目录下所有文件或目录public List<com.jcraft.jsch.ChannelSftp.LsEntry> lsEntries(String path, Filter<com.jcraft.jsch.ChannelSftp.LsEntry> filter)
path - 遍历某个目录下所有文件或目录filter - 文件或目录过滤器,可以实现过滤器返回自己需要的文件或目录名列表public boolean mkdir(String dir)
AbstractFtpmkdir in class AbstractFtpdir - 目录名public boolean cd(String directory) throws FtpException
cd in class AbstractFtpdirectory - directoryFtpException - 进入目录失败异常public boolean delFile(String filePath)
delFile in class AbstractFtpfilePath - 要删除的文件绝对路径public boolean delDir(String dirPath)
delDir in class AbstractFtpdirPath - 文件夹路径public boolean upload(String destPath, File file)
AbstractFtpupload in class AbstractFtpdestPath - 服务端路径,可以为null 或者相对路径或绝对路径file - 需要上传的文件public Sftp put(String srcFilePath, String destPath)
srcFilePath - 本地文件路径destPath - 目标路径,public Sftp put(String srcFilePath, String destPath, Sftp.Mode mode)
srcFilePath - 本地文件路径destPath - 目标路径,mode - Sftp.Mode 模式public Sftp put(String srcFilePath, String destPath, com.jcraft.jsch.SftpProgressMonitor monitor, Sftp.Mode mode)
srcFilePath - 本地文件路径destPath - 目标路径,monitor - 上传进度监控,通过实现此接口完成进度显示mode - Sftp.Mode 模式public void download(String src, File destFile)
AbstractFtpdownload in class AbstractFtpsrc - 文件路径destFile - 输出文件或目录public void recursiveDownloadFolder(String sourcePath, File destDir) throws JschRuntimeException
recursiveDownloadFolder in class AbstractFtpsourcePath - ftp服务器目录,必须为目录destDir - 本地目录JschRuntimeExceptionpublic Sftp get(String src, String dest)
src - 远程文件路径dest - 目标文件路径public void close()
Copyright © 2021. All rights reserved.