Class SshjSftp

java.lang.Object
org.aoju.bus.extra.ftp.AbstractFtp
org.aoju.bus.extra.ssh.SshjSftp
All Implemented Interfaces:
Closeable, AutoCloseable

public class SshjSftp extends AbstractFtp
在使用jsch 进行sftp协议下载文件时,总是中文乱码,而该框架源码又不允许设置编码

此类基于sshj 框架适配 参考:https://github.com/hierynomus/sshj

Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • SshjSftp

      public SshjSftp(String sshHost)
      构造,使用默认端口
      Parameters:
      sshHost - 主机
    • SshjSftp

      public SshjSftp(String sshHost, String sshUser, String sshPass)
      构造
      Parameters:
      sshHost - 主机
      sshUser - 用户名
      sshPass - 密码
    • SshjSftp

      public SshjSftp(String sshHost, int sshPort, String sshUser, String sshPass)
      构造
      Parameters:
      sshHost - 主机
      sshPort - 端口
      sshUser - 用户名
      sshPass - 密码
    • SshjSftp

      public SshjSftp(String sshHost, int sshPort, String sshUser, String sshPass, Charset charset)
      构造
      Parameters:
      sshHost - 主机
      sshPort - 端口
      sshUser - 用户名
      sshPass - 密码
      charset - 编码
    • SshjSftp

      protected SshjSftp(FtpConfig config)
      构造
      Parameters:
      config - FTP配置
  • Method Details

    • init

      public void init()
      SSH 初始化并创建一个sftp客户端
    • reconnectIfTimeout

      public AbstractFtp reconnectIfTimeout()
      Description copied from class: AbstractFtp
      如果连接超时的话,重新进行连接
      Specified by:
      reconnectIfTimeout in class AbstractFtp
      Returns:
      this
    • cd

      public boolean cd(String directory)
      Description copied from class: AbstractFtp
      打开指定目录
      Specified by:
      cd in class AbstractFtp
      Parameters:
      directory - directory
      Returns:
      是否打开目录
    • pwd

      public String pwd()
      Description copied from class: AbstractFtp
      远程当前目录(工作目录)
      Specified by:
      pwd in class AbstractFtp
      Returns:
      远程当前目录
    • mkdir

      public boolean mkdir(String dir)
      Description copied from class: AbstractFtp
      在当前远程目录(工作目录)下创建新的目录
      Specified by:
      mkdir in class AbstractFtp
      Parameters:
      dir - 目录名
      Returns:
      是否创建成功
    • ls

      public List<String> ls(String path)
      Description copied from class: AbstractFtp
      遍历某个目录下所有文件和目录,不会递归遍历
      Specified by:
      ls in class AbstractFtp
      Parameters:
      path - 需要遍历的目录
      Returns:
      文件和目录列表
    • delFile

      public boolean delFile(String path)
      Description copied from class: AbstractFtp
      删除指定目录下的指定文件
      Specified by:
      delFile in class AbstractFtp
      Parameters:
      path - 目录路径
      Returns:
      是否存在
    • delDir

      public boolean delDir(String dirPath)
      Description copied from class: AbstractFtp
      删除文件夹及其文件夹下的所有文件
      Specified by:
      delDir in class AbstractFtp
      Parameters:
      dirPath - 文件夹路径
      Returns:
      boolean 是否删除成功
    • upload

      public boolean upload(String destPath, File file)
      Description copied from class: AbstractFtp
      将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同 覆盖模式
      Specified by:
      upload in class AbstractFtp
      Parameters:
      destPath - 本地文件路径
      file - 目标文件
      Returns:
      是否成功
    • download

      public void download(String path, File dest)
      Description copied from class: AbstractFtp
      下载文件
      Specified by:
      download in class AbstractFtp
      Parameters:
      path - 文件路径
      dest - 输出文件或目录
    • download

      public void download(String source, String dest)
      Description copied from class: AbstractFtp
      获取远程文件(文件目录和服务器同步), 服务器上有新文件会覆盖本地文件
      Specified by:
      download in class AbstractFtp
      Parameters:
      source - 服务器目录
      dest - 本地目录
    • close

      public void close()
    • containsFile

      public boolean containsFile(String fileDir)
      是否包含该文件
      Parameters:
      fileDir - 文件绝对路径
      Returns:
      true:包含 false:不包含
    • command

      public String command(String exec)
      执行Linux 命令
      Parameters:
      exec - 命令
      Returns:
      返回响应结果