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)
下载文件
|
void |
download(String src,
OutputStream out)
下载文件到
OutputStream中 |
void |
download(String sourcePath,
String destPath)
递归获取远程文件
|
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,
org.aoju.bus.core.lang.Filter<com.jcraft.jsch.ChannelSftp.LsEntry> filter)
遍历某个目录下所有文件或目录,不会递归遍历
|
List<String> |
lsDirs(String path)
遍历某个目录下所有目录,不会递归遍历
|
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 |
upload(File file,
String remotePath)
将本地文件或者文件夹同步(覆盖)上传到远程路径
|
boolean |
upload(String destPath,
File file)
将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同 覆盖模式
|
boolean |
upload(String destPath,
String fileName,
InputStream fileStream)
上传文件到指定目录,可选:
|
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(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, org.aoju.bus.core.lang.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)
cd in class AbstractFtpdirectory - directorypublic 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 - 本地文件路径file - 目标文件public void upload(File file, String remotePath)
file - 文件或者文件夹remotePath - 远程路径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 Sftp put(InputStream srcStream, String destPath, com.jcraft.jsch.SftpProgressMonitor monitor, Sftp.Mode mode)
srcStream - 本地的数据流destPath - 目标路径,monitor - 上传进度监控,通过实现此接口完成进度显示mode - Sftp.Mode 模式public void download(String src, File destFile)
AbstractFtpdownload in class AbstractFtpsrc - 文件路径destFile - 输出文件或目录public void download(String sourcePath, String destPath)
download in class AbstractFtpsourcePath - 服务器目录destPath - 本地目录public void download(String src, OutputStream out)
OutputStream中src - 源文件路径,包括文件名out - 目标流public boolean upload(String destPath, String fileName, InputStream fileStream)
1. path为null或""上传到当前路径 2. path为相对路径则相对于当前路径的子路径 3. path为绝对路径则上传到此路径
destPath - 服务端路径,可以为null 或者相对路径或绝对路径fileName - 文件名fileStream - 文件流public Sftp get(String src, String dest)
src - 远程文件路径dest - 目标文件路径public Sftp get(String src, OutputStream out)
src - 远程文件路径out - 目标流public void close()
Copyright © 2021. All rights reserved.