这里我用到了


public class SftpClientUtil {/**#* 目标主机#*/
//            private final static String host = "10.110.18.216";private final static String host = "***";/**#* 目标端口#*/private final static int port = 22;
/**#* 目标用户名#*/
//        private final static String username = "root";
/**#* 目标密码#*/
//        private final static String password = "123456";
/**#* 目标目录#*/
//        private final static String directory = "/usr/local/文件夹/";
/**#* 目标url地址--用到返回值了#*/
//        private final static String baseUrl = "/usr/local/文件夹/";/*** 上传单个文件** @param* @param sourceFile     本地的地址上传的文件地址* @param remoteFileName 上传到SFTP服务器后的文件名* @throws Exception*/public String uploadFile(String sourceFile, String remoteFileName) throws Exception {long start = System.currentTimeMillis();//上传到SFTP服务器的路径File file = new File(sourceFile);InputStream fileStream = new FileInputStream(file); // 提升作用域ChannelSftp sftp = connect();try {//如果文件夹不存在,则创建文件夹if (sftp.ls(directory) == null) {sftp.mkdir(directory);}//切换到指定文件夹sftp.cd(directory);} catch (SftpException e) {//创建不存在的文件夹,并切换到文件夹sftp.mkdir(directory);sftp.cd(directory);}sftp.put(fileStream, remoteFileName);disconnect(sftp);System.out.println("文件上传成功!! 耗时:{" + (System.currentTimeMillis() - start) + "}ms");return baseUrl + remoteFileName;}/*** 连接sftp服务器** @throws Exception*/public  ChannelSftp connect() throws Exception {JSch jsch = new JSch();try {//采用指定的端口连接服务器Session session = jsch.getSession(username, host, Integer.valueOf(port));if (password != null) {//设置登陆主机的密码session.setPassword(password);}Properties sshConfig = new Properties();sshConfig.put("StrictHostKeyChecking", "no");session.setConfig(sshConfig);session.connect();//创建sftp通信通道Channel channel = session.openChannel("sftp");channel.connect();System.out.println("sftp server connect success !!");return (ChannelSftp) channel;} catch (JSchException e) {System.out.println("SFTP服务器连接异常!!" + e);throw new Exception("SFTP服务器连接异常!!", e);}}/*** Disconnect with server** @throws Exception*/public static void disconnect(ChannelSftp sftp) throws Exception {if (sftp != null) {if (sftp.isConnected()) {sftp.disconnect();} else if (sftp.isClosed()) {}}}/*** 删除文件** @param deleteFile 要删除的文件* @throws Exception*/public void delete(String deleteFile) throws Exception {ChannelSftp sftp = connect();sftp.cd(directory);sftp.rm(deleteFile);disconnect(sftp);}public station void main(String[] arge){try {//pathName 本地需要上传的文件路径和文件名称例子:/User/local/test.txt
//fileName 为文件名称new SftpClientUtil().uploadFile(pathName, fileName);log.info("完成一次");} catch (Exception e) {system.out.printnl(e)}
}

通过SFTP上传文件到另外服务器上面,相关推荐

  1. java使用sftp上传(文件)图片到服务器中

    最近租了一个服务器,想着上线个小项目,结果图片上传卡壳了,自从11号看了一篇文章就入了ftp的坑.研究了十多个小时的ftp文件传输,无果.睡前看到了一篇关于sftp上传文件的文章,抱着试一试的心态,结 ...

  2. 手把手教你java实现sftp上传文件到linux服务器

    1.首先引入pom文件依赖 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</ ...

  3. 怎么上传文件到kk服务器,VS Code 关于SFTP上传文件到多服务器的配置

    工欲善其事,必先利其器! 刚学前端的时候一直用的DW来编写代码,其功能非常强大,但在Linux下不能用,所以就转VS Code了. 但是刚开始使用VS Code的时候,很多DW上的功能需要自己安装扩展 ...

  4. VS Code 关于SFTP上传文件到多服务器的配置

    工欲善其事,必先利其器! 刚学前端的时候一直用的DW来编写代码,其功能非常强大,但在Linux下不能用,所以就转VS Code了. 但是刚开始使用VS Code的时候,很多DW上的功能需要自己安装扩展 ...

  5. 【便签纸】记录一次Linux服务器上通过sftp上传文件时的错误

    背景:在Linux服务器上,通过sftp上传文件到远程服务器. 首先,需要登录远程服务器,格式是: sftp [服务器名]@[服务器地址] 然后,需要输入服务器密码: [服务器名]@[服务器地址]'s ...

  6. JSch实现sftp上传文件

    一.JSch依赖坐标 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</art ...

  7. linux非root上传文件,root账号无法上传文件到Linux服务器

    普通权限的账号,通过ftp工具,可以正常连上Linux服务器,可以正常上传文件.但是root账号却无法上传文件. 网上搜了半天才知道,默认情况下vsftp是不允许root用户登录的,可以通过修改限制来 ...

  8. sftp方式从windows上传文件到Linux服务器

    今天我一直用scp想实现从windows上传文件到Linux服务器,但是鼓捣了半天也没有实现.后来查资料才发现,scp实现文件的上传和下载貌似只能在Linux和Linux之间实现.(欢迎指正不对的地方 ...

  9. java ssh 服务器文件传输_java使用SFTP上传文件到资源服务器

    本文实例为大家分享了java实现SFTP上传文件到资源服务器工具类,供大家参考,具体内容如下 首先得创建连接sftp服务器的公共类MySftp.java: package cn.test.util; ...

最新文章

  1. core Animation之CAKeyframeAnimation(关键帧动画)
  2. python 试题归纳及答疑 更新中.....
  3. rsyslog日志管理+LogAnalyzer
  4. 重磅!阿里发布全新操作系统,这次要干翻 CentOS 了!
  5. 第五节 19可空数据类型
  6. php判断url参数为空,PHP检查url链接是否已经有参数的简单示例
  7. jquery学习之1.12-给节点添加样式
  8. Spring Boot(19)---开发Web应用之Thymeleaf篇
  9. 矩阵分析 第二章 lambda矩阵和Jordan标准型
  10. 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
  11. 《黑客大曝光:移动应用安全揭秘及防护措施》一3.5 小结
  12. KeyMob:移动聚合广告的潜力无限
  13. Android Makefile and build system 分析
  14. javascript 函数传参
  15. OTDR使用中测试与误差原因分析
  16. 一个自己实现的js表单验证框架。
  17. 双目是个词吗_描写眼睛的词语3个字
  18. Hadoop 入门总结
  19. 成功解决TPOT下载read time out的问题
  20. 数据流图、数据流程图、程序流程图的区别与联系

热门文章

  1. python断言assertequal_python中那个断言assert的优化
  2. jdk自带监控分析指令之-jhat
  3. java 用poi-tl向word中插入数据,图片
  4. 第10章第25节:使用Paper Cut Art Generator创建剪纸艺术图像 [PowerPoint精美幻灯片实战教程]
  5. visual studio如何给编辑区添加背景图片,修改字体大小主题
  6. 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)
  7. 安装vscode 提示出现 所选驱动器或UNC共享不存在或不可访问。请另选择
  8. Unity协程深入及实现
  9. python列表去重效率_你应该学会的python列表去重
  10. Flask奇妙探索之旅(一)之Hello,World