java通过jsch使用sftp连接linux处理文件
1、Maven依赖
<!--Java连接Linux服务器依赖-->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
2、相关实现
private static final String RECORD_DIR="/dings";
private static final String SAVE_DIR="D:/backGroundVideos";
public static void main(String[] args){
// SFTP服务器地址
String host = "xxx.xxx.xxx.xxx";
// SFTP服务器端口号
int port = Integer.valueOf("22");
// SFTP登录用户名
String username = "xxx";
// SFTP登录密码
String password = "xxxxx";
JSch jsch = new JSch();
Session session = null;
ChannelSftp channelSftp = null;
try {
session = jsch.getSession(username, host, port);
session.setPassword(password);
// 设置StrictHostKeyChecking为no,避免第一次连接时会提示确认主机指纹信息
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
// 切换到要操作的文件夹路径
channelSftp.cd(RECORD_DIR);
Vector<ChannelSftp.LsEntry> fileList = channelSftp.ls("./*");
for (int i=0; i < fileList.size(); i++) {
ChannelSftp.LsEntry entry = fileList.elementAt(i);
if (!entry.getAttrs().isDir()) {
InputStream inputStream = channelSftp.get(entry.getFilename());
File file = new File(SAVE_DIR + "/local_directory/");
if (!file.exists()){
file.mkdirs();
}
String filePath = file +File.separator+ entry.getFilename();
OutputStream outputStream = new FileOutputStream(filePath);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
//获取完成删除文件
//channelSftp.rm(entry.getFilename());
}
} catch (JSchException | SftpException | IOException e) {
e.printStackTrace();
} finally {
if (channelSftp != null && channelSftp.isConnected()) {
channelSftp.disconnect();
}
if (session != null && session.isConnected()) {
session.disconnect();
}
}
}
java通过jsch使用sftp连接linux处理文件的更多相关文章
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- java通过sftp对linux服务器文件夹进行操作
本文主要讲sftp对linux服务器的文件和文件夹进行操作,windows server 服务器不支持. package com.lx.ftp; import java.io.File; import ...
- SecureFX连接Linux后文件夹中文乱码问题解决(转)
在使用SecureFX 连接Linux 时,发现文件夹显示乱码,一直尝试各种配置,现将方法整理一下!供大家参考! 首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 ...
- SFTP 连接服务器下载文件方法采坑说明
本篇博客主要记录请求SFTP服务器的一些方法采坑情况. 采坑的方法说明: 1. cd():这个方法用于进入某个目录下. 默认情况,当连接SFTP服务器成功后直接进入用户目录,比如我连接自己本机SFTP ...
- 1.关于UltraEdit中的FTP和Tenent配置,UE远程连接Linux进行文件操作
1 安装UltraEdit 2 配置FTP相关的配置 文件àFTP/Tenet(T)à watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3 ...
- linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
linux 传入 传出文件 swp port 22 怎样通过swp通过docker 容器向外传文件 通过scp Linux互传文件,需要知道文件源 file source 所在系统的ip wuse ...
- securefx连接linux后文件夹中文乱码问题解决
首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 进入到该目录中,选择“Sessions”: 在“Sessions”中找到链接地址的ini文件,并用文本编辑器打开: ...
- 通过sftp操作Linux服务器上的文件(java)
本文为实现对linux服务器文件的操作.windows服务器不支持. 引入jar包:jsch-0.1.42.jar package com.csvreader.sftp; import java.io ...
- java之Jsch实现Linux的文件上传与下载
一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...
- java使用ssh连接Linux并执行命令
方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency> <groupId>com.jcraft</groupId ...
随机推荐
- MyBatis实现多行合并(collection标签使用)
举个栗子 现有如下表结构,用户表.角色表.用户角色关联表. 一个用户有多个角色,一个角色有可以给多个用户,也即常见的多对多场景. 现有这样一个需求,分页查询用户数据,除了用户ID和用户名称字段,还要查 ...
- win32 - 使用GDI+播放gif图片
今天做case的时候遇到一个这样的问题,故记录下来. Codeproject有类似的案例,不过是使用的MFC模板编译的. 因为我们只需要win32程序,所以就....代码如下: CodeProject ...
- RESTful API 介绍,设计
一:RESTful介绍 在互联网发展过程中,最开始是以html静态网页展示内容,url的表现形式一般为 http://www.example.com/getInfo.html:后来随着需求不断提高以及 ...
- At-abc342
AtCoder Beginner Contest 342 (已更新:C D) C 似曾相识的经典映射题--而只会map的蒟蒻成功又被卡住了 简单的用map映射无法处理如r->a,a->r这 ...
- CSDN的Markdown编辑器使用说明
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- 谷歌浏览器vue.js devtools插件安装
github官网 https://github.com/vuejs/vue-devtools#vue-devtools 插件安装地址(需FQ) https://chrome.google.com/we ...
- 【Azure Developer】使用REST API获取Activity Logs、传入Data Lake的数据格式问题
问题一:. 如何在用REST API获取活动日志时,控制输出的项? [答]参考REST API对于获取活动日志的说明接口,在参数是$filter和$select中可以分别控制过滤条件和输出项 GET ...
- 容器与 Pod
现在 Docker 的流行程度越来越高,越来越多的公司使用 Docker 打包和部署项目.但是也有很多公司只是追求新技术,将以前的单体应用直接打包为镜像,代码.配置方式等各方面保持不变,使用 Dock ...
- ubuntu22.04安装配置redis
本操作在虚拟机上 安装Redis 1)更新系统 sudo apt update sudo apt upgrade 2)安装Redis sudo apt install redis-server 3)测 ...
- 简单配置Sql专家云
一.实例配置 1.添加实例 点击全面诊断实例配置,右上角点击添加. 2.填写实例信息 根据下图填写对应的信息,连接测试成功后点击保存. 3.添加完成 4.修改实例 找到对应的实例,点击下图蓝色框修改即 ...