通过SFTP上传文件到另外服务器上面,
这里我用到了
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上传文件到另外服务器上面,相关推荐
- java使用sftp上传(文件)图片到服务器中
最近租了一个服务器,想着上线个小项目,结果图片上传卡壳了,自从11号看了一篇文章就入了ftp的坑.研究了十多个小时的ftp文件传输,无果.睡前看到了一篇关于sftp上传文件的文章,抱着试一试的心态,结 ...
- 手把手教你java实现sftp上传文件到linux服务器
1.首先引入pom文件依赖 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</ ...
- 怎么上传文件到kk服务器,VS Code 关于SFTP上传文件到多服务器的配置
工欲善其事,必先利其器! 刚学前端的时候一直用的DW来编写代码,其功能非常强大,但在Linux下不能用,所以就转VS Code了. 但是刚开始使用VS Code的时候,很多DW上的功能需要自己安装扩展 ...
- VS Code 关于SFTP上传文件到多服务器的配置
工欲善其事,必先利其器! 刚学前端的时候一直用的DW来编写代码,其功能非常强大,但在Linux下不能用,所以就转VS Code了. 但是刚开始使用VS Code的时候,很多DW上的功能需要自己安装扩展 ...
- 【便签纸】记录一次Linux服务器上通过sftp上传文件时的错误
背景:在Linux服务器上,通过sftp上传文件到远程服务器. 首先,需要登录远程服务器,格式是: sftp [服务器名]@[服务器地址] 然后,需要输入服务器密码: [服务器名]@[服务器地址]'s ...
- JSch实现sftp上传文件
一.JSch依赖坐标 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</art ...
- linux非root上传文件,root账号无法上传文件到Linux服务器
普通权限的账号,通过ftp工具,可以正常连上Linux服务器,可以正常上传文件.但是root账号却无法上传文件. 网上搜了半天才知道,默认情况下vsftp是不允许root用户登录的,可以通过修改限制来 ...
- sftp方式从windows上传文件到Linux服务器
今天我一直用scp想实现从windows上传文件到Linux服务器,但是鼓捣了半天也没有实现.后来查资料才发现,scp实现文件的上传和下载貌似只能在Linux和Linux之间实现.(欢迎指正不对的地方 ...
- java ssh 服务器文件传输_java使用SFTP上传文件到资源服务器
本文实例为大家分享了java实现SFTP上传文件到资源服务器工具类,供大家参考,具体内容如下 首先得创建连接sftp服务器的公共类MySftp.java: package cn.test.util; ...
最新文章
- core Animation之CAKeyframeAnimation(关键帧动画)
- python 试题归纳及答疑 更新中.....
- rsyslog日志管理+LogAnalyzer
- 重磅!阿里发布全新操作系统,这次要干翻 CentOS 了!
- 第五节 19可空数据类型
- php判断url参数为空,PHP检查url链接是否已经有参数的简单示例
- jquery学习之1.12-给节点添加样式
- Spring Boot(19)---开发Web应用之Thymeleaf篇
- 矩阵分析 第二章 lambda矩阵和Jordan标准型
- 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
- 《黑客大曝光:移动应用安全揭秘及防护措施》一3.5 小结
- KeyMob:移动聚合广告的潜力无限
- Android Makefile and build system 分析
- javascript 函数传参
- OTDR使用中测试与误差原因分析
- 一个自己实现的js表单验证框架。
- 双目是个词吗_描写眼睛的词语3个字
- Hadoop 入门总结
- 成功解决TPOT下载read time out的问题
- 数据流图、数据流程图、程序流程图的区别与联系
热门文章
- python断言assertequal_python中那个断言assert的优化
- jdk自带监控分析指令之-jhat
- java 用poi-tl向word中插入数据,图片
- 第10章第25节:使用Paper Cut Art Generator创建剪纸艺术图像 [PowerPoint精美幻灯片实战教程]
- visual studio如何给编辑区添加背景图片,修改字体大小主题
- 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)
- 安装vscode 提示出现 所选驱动器或UNC共享不存在或不可访问。请另选择
- Unity协程深入及实现
- python列表去重效率_你应该学会的python列表去重
- Flask奇妙探索之旅(一)之Hello,World