最新要闻
- 火热征集中!全国城市生活垃圾分类标识征集大赛邀你来参与-世界新消息
- 大气!蔚来宣布五一期间所有车主高速免费换电:不限次
- 47个楼盘2块钱甩卖!恒大汽车:只为专注造车
- 《古剑奇谭》开发商新作!类银河城游戏《心渊梦境》登陆PC/主机全平台
- 上海杭州之间或将建世界首条超级高铁:仅9分钟车程 全球热点
- 起诉苹果后 百度文心一言推出内测专用独立App:支持语音输入
- 坐下、抬爪、击掌……“毛孩子”们为患者带来欢乐与慰藉!
- 安徽宿州:在房交会期间购买90平米以上新房,将给予每套10000元消费券
- 千万粉网红回应打卡徐州烧烤被网暴:不是黑 问题确实存在
- “祝融号”火星车休眠近一年仍未唤醒 设计师回应:可能遭遇不可预知沙尘|微动态
- 睡个美容觉!马应龙蒸汽眼罩0.99元/片冲量大促 快看点
- 《赛博朋克2077》自研REDEngine出Bug:开启DLSS 3反而变卡 当前资讯
- 今日港股异动个股一览:中创新航(03931)现跌超5% 高盛称产能过剩或拖累利润率 产能扩张计划或提高杠杆水平_世界独家
- 吴镇宇14岁儿子官宣恋情!是日本无数宅男的女神
- 总裁赵伟与欧冶工业品公司领导座谈交流 时讯
- 扎克伯格醉心AI:Facebook或将更名MetAI
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天观焦点:Sftp工具类(跨服务器传输)
(资料图)
1 package com.damddos.waf.utils; 2 3 import com.jcraft.jsch.*; 4 import org.apache.commons.io.IOUtils; 5 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.nio.charset.Charset; 9 import java.util.Properties; 10 11 /** 12 * sftp工具类 13 * 14 * @author liYang 15 * @date 2023/04/10 16 */ 17 public class SftpUtil { 18 private static JSch jsch; 19 private static Session session = null; 20 private static Channel channel = null; 21 private static ChannelSftp channelSftp = null; 22 23 //服务器用户名 24 private String ftpUserName; 25 26 //服务器密码 27 private String ftpPassword; 28 29 //服务器ip 30 private String ftpHost; 31 32 //服务器端口 33 private String ftpPort; 34 35 public SftpUtil() { 36 } 37 38 public SftpUtil(String ftpUserName, String ftpPassword, String ftpHost, String ftpPort) { 39 this.ftpUserName = ftpUserName; 40 this.ftpPassword = ftpPassword; 41 this.ftpHost = ftpHost; 42 this.ftpPort = ftpPort; 43 } 44 45 /** 46 * 开启连接 47 */ 48 public ChannelSftp connect() { 49 jsch = new JSch(); 50 try { 51 // 根据用户名、主机ip、端口号获取一个Session对象 52 session = jsch.getSession(ftpUserName, ftpHost, Integer.valueOf(ftpPort)); 53 // 设置密码 54 session.setPassword(ftpPassword); 55 Properties config = new Properties(); 56 config.put("StrictHostKeyChecking", "no"); 57 // 为Session对象设置properties 58 session.setConfig(config); 59 // 设置连接超时为5秒 60 session.setTimeout(100 * 50); 61 // 通过Session建立连接 62 session.connect(); 63 // 打开SFTP通道 64 channel = session.openChannel("sftp"); 65 // 建立SFTP通道的连接 66 channel.connect(); 67 channelSftp = (ChannelSftp) channel; 68 } catch (JSchException e) { 69 e.printStackTrace(); 70 } 71 return channelSftp; 72 } 73 74 /** 75 * 关闭连接 76 */ 77 public void close() { 78 if (channel != null) { 79 channel.disconnect(); 80 } 81 if (session != null) { 82 session.disconnect(); 83 } 84 } 85 86 /** 87 * 判断文件夹路径是否存在 88 * 89 * @param directory 文件夹路径,如:/root/test/saveFile/ 90 */ 91 public boolean isDirExist(String directory) { 92 directory = null != directory && directory.endsWith("/") ? directory : directory + "/"; 93 boolean dirExist = false; 94 try { 95 SftpATTRS sftpATTRS = channelSftp.lstat(directory); 96 dirExist = sftpATTRS.isDir(); 97 } catch (Exception e) { 98 if (e.getMessage().equalsIgnoreCase("no such file")) { 99 dirExist = false;100 }101 }102 return dirExist;103 }104 105 /**106 * 创建一个文件夹(若整个路径都不存在会依次创建,若改路径已经存在则不会创建)107 *108 * @param createpath 要创建的文件夹路径,如:/root/test/saveFile/109 * @throws SftpException110 */111 public void createDir(String createpath) {112 createpath = null != createpath && createpath.endsWith("/") ? createpath : createpath + "/";113 if (!isDirExist(createpath)) {114 StringBuilder builder = new StringBuilder("/");115 String pathArry[] = createpath.split("/");116 for (String dir : pathArry) {117 if (!dir.equals("")) {118 builder.append(dir);119 builder.append("/");120 try {121 String path = builder.toString();122 if (!isDirExist(path)) {123 // 建立目录124 channelSftp.mkdir(path);125 }126 } catch (SftpException e) {127 e.printStackTrace();128 }129 }130 }131 }132 }133 134 /**135 * 删除文件136 *137 * @param deleteFile 要删除的文件路径,如:/root/test/saveFile/mylog.log138 */139 public void deleteFile(String deleteFile) {140 try {141 channelSftp.rm(deleteFile);142 } catch (Exception e) {143 e.printStackTrace();144 }145 }146 147 /**148 * 文件上传149 *150 * @param fileStram 文件输入流151 * @param upToPath 要上传到的文件夹路径152 * @param fileName 上传后的文件名153 */154 public void uploadFile(InputStream fileStram, String upToPath, String fileName) {155 upToPath = null != upToPath && upToPath.endsWith("/") ? upToPath : upToPath + "/";156 try {157 channelSftp.put(fileStram, upToPath + fileName);158 } catch (SftpException e) {159 e.printStackTrace();160 }161 }162 163 /**164 * 文件下载165 *166 * @param downlownPath 要下载的文件的所在文件夹路径167 * @param fileName 文件名168 * @return download 返回下载的文件流169 */170 public InputStream downloadFile(String downlownPath, String fileName) {171 downlownPath = null != downlownPath && downlownPath.endsWith("/") ? downlownPath : downlownPath + "/";172 InputStream download = null;173 try {174 download = channelSftp.get(downlownPath + fileName);175 } catch (SftpException e) {176 e.printStackTrace();177 }178 return download;179 }180 181 182 /**183 * 执行linux命令184 *185 * @param order 要执行的命令,(如,打印指定目录下的文件信息: ls -a /usr/local/kkFileView/kkFileView-4.0.0/bin/)186 * @return result 执行后返回的结果187 */188 public String excutOrder(String order) {189 String result = "";190 try {191 ChannelExec channelExec = (ChannelExec) session.openChannel("exec");192 channelExec.setCommand(order);193 channelExec.setErrStream(System.err);194 channelExec.connect();195 InputStream in = channelExec.getInputStream();196 result = IOUtils.toString(in, Charset.defaultCharset());197 } catch (JSchException e) {198 e.printStackTrace();199 } catch (IOException e) {200 e.printStackTrace();201 }202 return result;203 }204 205 }
项目需要。
关键词:
-
天天观焦点:Sftp工具类(跨服务器传输)
1packagecom damddos waf utils;23importcom jcraft jsch *;4importorg apache commons io IOUtil
来源: -
头条:使用Dockerfile部署springboot打包jar包
1、docker下载JDK1 8镜像dockerpulljava:82、进行需要编译的镜像文件目录编写Dockerfile文件 依赖的父镜像F
来源: Java中不同对象调用该实例方法返回值是同一个地址空间吗?|天天最资讯
天天观焦点:Sftp工具类(跨服务器传输)
MySQL 备忘清单_开发速查表分享
头条:使用Dockerfile部署springboot打包jar包
【天天新要闻】仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架 主流框架简介 动静态网页 Python虚拟环境
火热征集中!全国城市生活垃圾分类标识征集大赛邀你来参与-世界新消息
收评:创指跌1.83%创近半年来新低 锂电池产业链跌幅靠前 天天热点
当前短讯!【财经分析】供应收缩叠加需求前景有望改善 原油止跌反弹
大气!蔚来宣布五一期间所有车主高速免费换电:不限次
47个楼盘2块钱甩卖!恒大汽车:只为专注造车
《古剑奇谭》开发商新作!类银河城游戏《心渊梦境》登陆PC/主机全平台
上海杭州之间或将建世界首条超级高铁:仅9分钟车程 全球热点
起诉苹果后 百度文心一言推出内测专用独立App:支持语音输入
坐下、抬爪、击掌……“毛孩子”们为患者带来欢乐与慰藉!
焦点快看:高质量数仓建模
火山引擎 DataLeap:在数据研发中,如何提升效率?
全球观点:数仓实践丨主动预防-DWS关键工具安装确认
支持全文检索、知识图谱、工作流审批的知识平台_天天时讯
【Mysql】复合主键的索引
安徽宿州:在房交会期间购买90平米以上新房,将给予每套10000元消费券
千万粉网红回应打卡徐州烧烤被网暴:不是黑 问题确实存在
“祝融号”火星车休眠近一年仍未唤醒 设计师回应:可能遭遇不可预知沙尘|微动态
睡个美容觉!马应龙蒸汽眼罩0.99元/片冲量大促 快看点
《赛博朋克2077》自研REDEngine出Bug:开启DLSS 3反而变卡 当前资讯
今日港股异动个股一览:中创新航(03931)现跌超5% 高盛称产能过剩或拖累利润率 产能扩张计划或提高杠杆水平_世界独家
吴镇宇14岁儿子官宣恋情!是日本无数宅男的女神
总裁赵伟与欧冶工业品公司领导座谈交流 时讯
扎克伯格醉心AI:Facebook或将更名MetAI
爱过的人我已不再拥有是什么歌?爱过的人我已不再拥有完整版歌词
终极系列正确观看顺序是什么?终极系列战力指数排名
双探的原型是什么?双探剧情介绍
天津德云鼓曲社升平雅乐特别奉献专场观演攻略 当前播报
光芒程亦治和丽姿第几集复婚的?光芒程亦治的身份是什么?
by2是双胞胎吗?by2个人资料介绍
强强联合,ByteHouse 携手亚马逊云科技,新一代云数仓服务重磅升级 世界新消息
全球通讯!深入理解C#泛型:new与where关键字全解析
使用docker 运行etcd 单实例/集群|环球播资讯
厦门市场监管部门发出“五一”旅游行业价格行为提醒告诫_天天速看
日本强推“排污入海”!学界:全球海洋生态将面临核污染水风险 全球信息
天天微速讯:自动泊车挑战立体车库 奔驰唯一成功 碾压华为、特斯拉
世界新资讯:特斯拉动能回收要彻底取消?博主辟谣:不实、只有两级可调
未上线就创纪录!《原神》开发商新作《崩坏:星穹铁道》iOS 113国登顶-热点
歼-20试飞员评价《长空之王》:很真实的影片
常欣科技2022年亏损30.64万同比由盈转亏 产品销售下降
要闻:彻底服了!这JB,NBA第一硬!黑8,必须黑8!
2023年宁德社保费用参考 宁德社保个人缴费标准是多少|速讯
iFlutter - 加速Flutter开发 环球消息
江西日报经济版头条 | 分宜工业经济高质量发展步履坚实
昭通昭阳富滇村镇银行获批解散 被富滇银行吸收合并 世界要闻
【环球财经】美国第一共和银行一季度业绩显著恶化
宋都基业投资股份有限公司发布公司股票可能被实施退市风险警示的第二次风险提示公告
东北地区及新疆等地有雨雪天气 江南华南有明显降雨过程
2023一卡逛崇川在哪里购买
今日报丨青岛口岸启运港退税政策宣传推介会举行
汽车也能戴“手表” 五菱宝骏悦也预告:行业首次搭载Car-watch
2499元 雷神MIX迷你主机上架:13代i5 比一罐可乐还小 世界快消息
商家浑水摸鱼 买到无码SteamDeck你肯定被骗了 全球观速讯
全球球精选!苹果影像破天荒升级!iPhone 15 Pro Max终于跟上安卓步伐了
今日热讯:恒大汽车暂缓生产恒驰5 全国交付量“感人”
广生泉:家政服务进社区
全球观天下!晋宁区开展“你点我检”食品安全专项抽检工作
安庆市养老金能提前支取吗 2023年安庆养老金如何计算 要闻速递
dnfyy是什么意思?dnfyy有哪些辅助频道?
首次发布!成都这个地方上火星了!
电压低是什么原因造成的?电压低对笔记本有影响吗?
戴尔inspiron 1440右侧卡槽干什么用?戴尔inspiron 1440配置
华为手机怎么获得root权限?华为手机怎么设置24小时时间显示?
[XXL-JOB] 分布式调度XXL-JOB快速上手 世界最新
今日观点!登录接口实现细节分析与登录接口代码实现
使用AI优化慢SQL,开发秒变DBA|焦点资讯
视讯!MIME Base64编码
圆通速递和圆通快递一样吗?圆通速递价格表查询
不止新机血赚!去年苹果iPhone在翻新手机市场占比达49%,同比增长16%
璞泰来江苏新设膜材料科技子公司 注册资本4亿元|今头条
台安县气象局发布大风黄色预警【Ⅲ级/较重】【2023-04-25】
企业有诉求,深圳坂田服务小组立即出动……
OPPO Reno 10 Pro+通过认证:骁龙8+、100W超级闪充
每日播报!强风吹倒墙壁女子新车被砸烂 4S店:无偿修复 赔7千
网友想要比小米13更小的小屏手机!雷军回应
世界资讯:电车出行半径不设限 AITO问界M5纯电版五一说走就走
博主曝易车网策划宝马MINI冰淇淋热点传播 易车回应 当前信息
快看:现代侧钻井技术_关于现代侧钻井技术介绍
【环球热闻】中国代表队在2022
锻造年轻干部成长链 环球简讯
青年宫合唱团成立10余年 已成为百余名老年人的心灵港湾 天天精选
天天播报:2023上海车展:捷尼赛思G90 财阀大佬座驾灵不灵?
接口测试快速入门1简介 焦点关注
Netstat 备忘清单_开发速查表分享|焦点播报
焦点速递!我要手把手教你搭建一套抗瞬时百万流量的秒杀系统
全球时讯:如何在Android studio导入jdk9及以上版本中依赖包,如'rt.jar',' dt.jar'等
第133届广交会第三期行业论坛闭幕
长城汽车一季度净利同比下跌近9成,皮卡成唯一增长板块 天天热资讯
烤箱吐司面包的做法窍门_烤箱吐司面包的做法
手机厂商们宣传的“等效光圈”是什么鬼?如何计算
酒店在五一推出“99元睡大厅”:0.8米的沙发床!已火速下架
全球聚焦:1399元起 荣耀X50i开售:一亿像素、轻羽纹理后盖
全球快看点丨《王者荣耀》五五朋友节皮肤来了:刘关张桃源结义、妲己九尾狐
世界快资讯:CPU为什么很少会坏?答案揭晓
信用卡欠钱影响政审吗?信用卡逾期影响考公务员吗?|热闻
二级医疗事故赔偿标准是怎样的