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(com.jcraft.jsch.ChannelSftp channel,
Charset charset,
long timeOut)
构造
|
Sftp(FtpConfig config)
构造
|
Sftp(FtpConfig config,
boolean init)
构造
|
Sftp(com.jcraft.jsch.Session session)
构造
|
Sftp(com.jcraft.jsch.Session session,
Charset charset)
构造
|
Sftp(com.jcraft.jsch.Session session,
Charset charset,
long timeOut)
构造
|
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)
打开指定目录,如果指定路径非目录或不存在抛出异常
|
void |
close() |
boolean |
delDir(String dirPath)
删除文件夹及其文件夹下的所有文件
|
boolean |
delFile(String filePath)
删除文件
|
void |
download(String src,
File destFile)
下载文件
|
void |
download(String src,
OutputStream out)
下载文件到
OutputStream中 |
Sftp |
get(String src,
OutputStream out)
获取远程文件
|
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)
构造
|
boolean |
isDir(String dir)
判断给定路径是否为目录
|
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(InputStream srcStream,
String destPath,
com.jcraft.jsch.SftpProgressMonitor monitor,
Sftp.Mode mode)
将本地数据流上传到目标服务器,目标文件名为destPath,目标必须为文件
|
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服务器上文件到本地(文件目录和服务器同步)
|
void |
rename(String from,
String to)
重命名文件/目录
|
void |
syncUpload(File file,
String remotePath)
将本地文件或者文件夹同步(覆盖)上传到远程路径
|
String |
toString() |
boolean |
upload(String destPath,
File file)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与file文件名相同。
|
boolean |
upload(String destPath,
String fileName,
InputStream fileStream)
上传文件到指定目录,可选:
1. path为null或""上传到当前路径
2. path为相对路径则相对于当前路径的子路径
3. path为绝对路径则上传到此路径
|
download, 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(FtpConfig config, boolean init)
config - FTP配置init - 是否立即初始化public Sftp(com.jcraft.jsch.Session session)
session - Sessionpublic Sftp(com.jcraft.jsch.Session session,
Charset charset)
session - Sessioncharset - 编码public Sftp(com.jcraft.jsch.Session session,
Charset charset,
long timeOut)
session - Sessioncharset - 编码timeOut - 超时时间,单位毫秒public Sftp(com.jcraft.jsch.ChannelSftp channel,
Charset charset,
long timeOut)
channel - ChannelSftpcharset - 编码timeOut - 超时时间,单位毫秒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 isDir(String dir)
AbstractFtpisDir 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 void syncUpload(File file, String remotePath)
file - 文件或者文件夹remotePath - 远程路径public boolean upload(String destPath, File file)
AbstractFtpupload in class AbstractFtpdestPath - 服务端路径,可以为null 或者相对路径或绝对路径file - 需要上传的文件public boolean upload(String destPath, String fileName, InputStream fileStream)
1. path为null或""上传到当前路径 2. path为相对路径则相对于当前路径的子路径 3. path为绝对路径则上传到此路径
destPath - 服务端路径,可以为null 或者相对路径或绝对路径fileName - 文件名fileStream - 文件流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 - 目标路径,null表示当前路径monitor - 上传进度监控,通过实现此接口完成进度显示mode - Sftp.Mode 模式public Sftp put(InputStream srcStream, String destPath, com.jcraft.jsch.SftpProgressMonitor monitor, Sftp.Mode mode)
srcStream - 本地的数据流destPath - 目标路径,null表示当前路径monitor - 上传进度监控,通过实现此接口完成进度显示mode - Sftp.Mode 模式public void download(String src, File destFile)
AbstractFtpdownload in class AbstractFtpsrc - 文件路径destFile - 输出文件或目录public void download(String src, OutputStream out)
OutputStream中src - 源文件路径,包括文件名out - 目标流get(String, OutputStream)public void recursiveDownloadFolder(String sourcePath, File destDir) throws JschRuntimeException
recursiveDownloadFolder in class AbstractFtpsourcePath - ftp服务器目录,必须为目录destDir - 本地目录JschRuntimeExceptionpublic void rename(String from, String to)
AbstractFtprename in class AbstractFtpfrom - 原路径to - 目标路径public Sftp get(String src, String dest)
src - 远程文件路径dest - 目标文件路径public Sftp get(String src, OutputStream out)
src - 远程文件路径out - 目标流public void close()
Copyright © 2025. All rights reserved.