Java使用JSch实现SSH远程执行命令

前言

有一个奇怪的需求,就是将本地的内容直接提交到远程服务器,并且需要针对文件夹进行处理。所以,这里就直接采用JSch来实现。在这里,感谢秀发浓密的程序猿这篇博客,给了很大启发。

思路

既然是直接读取文件夹,我们就不考虑浏览器不能访问本地文件的问题了。直接就是Java处理,然后直接读取文件提交服务器。

当然,介于上传过程中是Windows上传到Linux,如果只传图片倒还没什么问题,传文件可就造了老罪了。还好我现在只有图片需求。

但也并不能掉以轻心,因为,就算是图片,名字也是中文的。

所以直接用UUID避免了上传乱码,等上传结束了再mv到目标文件夹中。

上代码

private static final String TMPDIR = "/data/ftp";
public static void sshSftpUpload(String ip, String user, String psw, int port, String localDirFileName, String destDir, String fileName) throws Exception {
   
  // 这些需要后期关闭的资源需要单独拉出来
  // 而由于OutputStream与InputStream在初始化时需要单独Override其中的write方法
  // 所以没办法直接用`try-catch-resource`语法糖给直接new出来
  // 所以单独声明,就干脆全放一起了
  Channel channel = null, channelShell = null;
  Session session = null;
  ChannelSftp sftp = null;
  String tmpFileName = "";
  OutputStream outStream = null;
  InputStream inStream = null;
  try {
   
    JSch jsch = new JSch
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ordinary_brony

代码滞销,救救码农

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值