sftp文件上传下载

原创 2016年08月30日 11:07:25

最近写的一个JAVA实现SFTP的实例:

/*
* Created on 2009-9-14
* Copyright 2009 by www.xfok.net. All Rights Reserved
*
*/

package net.xfok.ftp;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.Vector;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;

/**
* @author YangHua
* 转载请注明出处:http://www.xfok.net/2009/10/124485.html
*/
public class MySFTP {

/**
* 连接sftp服务器
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public ChannelSftp connect(String host, int port, String username,
String password) {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(username, host, port);
Session sshSession = jsch.getSession(username, host, port);
System.out.println("Session created.");
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Session connected.");
System.out.println("Opening Channel.");
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println("Connected to " + host + ".");
} catch (Exception e) {

}
return sftp;
}

/**
* 上传文件
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file=new File(uploadFile);
sftp.put(new FileInputStream(file), file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 下载文件
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
*/
public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file=new File(saveFile);
sftp.get(downloadFile, new FileOutputStream(file));
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 删除文件
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
sftp.rm(deleteFile);
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 列出目录下的文件
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException{
return sftp.ls(directory);
}

public static void main(String[] args) {
MySFTP sf = new MySFTP();
String host = "192.168.0.1";
int port = 22;
String username = "root";
String password = "root";
String directory = "/home/httpd/test/";
String uploadFile = "D:\\tmp\\upload.txt";
String downloadFile = "upload.txt";
String saveFile = "D:\\tmp\\download.txt";
String deleteFile = "delete.txt";
ChannelSftp sftp=sf.connect(host, port, username, password);
sf.upload(directory, uploadFile, sftp);
sf.download(directory, downloadFile, saveFile, sftp);
sf.delete(directory, deleteFile, sftp);
try{
sftp.cd(directory);
sftp.mkdir("ss");
System.out.println("finished");
}catch(Exception e){
e.printStackTrace();
}
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java SFTP文件上传下载

Java实现SFTP,上传下载时可以变更文件名,记录一下 在安卓文章里看到的,用的包是:jsch-0.1.54.jar,log请换成log4jpublic class...
  • griswold6
  • griswold6
  • 2017年03月30日 15:37
  • 619

JSch:纯JAVA实现SFTP文件上传和下载

原文链接:https://my.oschina.net/hetiangui/blog/137357 如果你想用纯JAVA实现SFTP文件上传或下载,或者是想纯JAVA连接到SSH2服务器上执行命令,那...
  • liuxiangke0210
  • liuxiangke0210
  • 2017年04月05日 14:47
  • 1079

linux下上传下载命令SFTP ,FTP

scp 帮助命令: man scp scp功能: 下载远程文件或者目录到本地, 如果想上传或者想下载目录,最好的办法是采用tar压缩一下,是最明智的选择. 从远程主机...
  • aaa1117a8w5s6d
  • aaa1117a8w5s6d
  • 2013年11月08日 11:27
  • 9589

SFTP文件上传和下载

1.jsch官方API查看地址(附件为需要的jar) http://www.jcraft.com/jsch/ 2.jsch简介 JSch(Java Secure Channel)是一个SSH...
  • z991876960
  • z991876960
  • 2017年01月10日 17:49
  • 670

Java 使用 SFTP 实现文件上传下载(二)

package com.lijy.util; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import c...
  • yewen1234
  • yewen1234
  • 2017年06月14日 18:41
  • 1231

Java中使用jcraft进行SFTP的上传下载

如果大家熟悉Linux的话,一定对ssh,sftp,scp等命令非常熟悉。ssh是一个安全协议,用来在不同系统或者服务 器之间进行安全连接。ssh 在连接和传送的过程中会加密所有的数据。具体的解...
  • ayanami001
  • ayanami001
  • 2015年08月31日 15:44
  • 1058

java 代码链接SFTP,上传下载

依赖jar包: com.jcraft jsch 0.1.53 import java.io.File; import java.io.FileInputStream; imp...
  • hfmbook
  • hfmbook
  • 2016年07月21日 16:41
  • 2129

shell调用sftp实现自动批量上传or下载

最近项目需要自动FTP批量上传文件或下载文件。最快的完成方式就是在shell里调用相关的命点击打开链接令,并用crontab调用shell脚本实现周期性FTP批理处理。 当前流行的FTP分为 ft...
  • djd1234567
  • djd1234567
  • 2016年04月29日 11:47
  • 3578

使用SourceCRT利用sftp从远程主机上传下载文件

从远程主机下载文件或者向远程主机上传文件,可以使用专门的ftp工具,如UE中的ftp组件,操作非常简单。由于最近更换电脑, 操作系统从32位升级到64位,导致原来的UE安装总是出问题,换了两个版本的,...
  • learneraiqi
  • learneraiqi
  • 2015年05月20日 18:38
  • 2748

Java连接SFTP服务器下载上传文件

公司因为业务需要,于是就需要从对方的SFTP服务器上取文件,笔者就稍微了解了一下,就写出了以下代码,希望能够帮助到大家!public static void sshSftp(String ip, St...
  • TigerD1995
  • TigerD1995
  • 2016年04月07日 10:04
  • 2024
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sftp文件上传下载
举报原因:
原因补充:

(最多只允许输入30个字)