`
- 浏览:
11881 次
- 性别:
- 来自:
南京
-
- package com.ikea.utils;
-
-
-
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;
-
import com.jcraft.jsch.ChannelSftp.LsEntry;
-
-
public class SFTPUtils {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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;
- }
-
-
-
-
-
-
-
-
-
-
-
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();
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
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();
- }
- }
-
-
-
-
-
-
-
-
-
-
-
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
-
try {
- sftp.cd(directory);
- sftp.rm(deleteFile);
-
} catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-
-
-
-
-
-
-
-
-
-
public Vector<LsEntry> listFiles(String directory, ChannelSftp sftp)
-
throws SftpException {
-
return sftp.ls(directory);
- }
-
-
public static void main(String[] args) {
-
SFTPUtils sf = new SFTPUtils();
-
String host = "******";
-
int port = 22;
-
String username = "****";
-
String password = "****";
-
String directory = "/****/";
-
String saveFile = "";
-
String downLoadDirectory = "D:\\";
-
ChannelSftp sftp = null;
-
Session sshSession = null;
-
try {
-
JSch jsch = new JSch();
- jsch.getSession(username, host, port);
- 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 + ".");
-
-
-
-
-
-
-
-
-
-
- Vector<LsEntry> v = sf.listFiles(directory, sftp);
-
for (LsEntry e : v) {
-
if(!e.getFilename().startsWith(".")) {
- saveFile = downLoadDirectory + e.getFilename();
- sf.download(directory, e.getFilename(), saveFile, sftp);
- }
- }
-
System.out.println("finished");
-
} catch (Exception e) {
- e.printStackTrace();
-
} finally {
- sftp.exit();
- sshSession.disconnect();
- }
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
JAVA SFTP文件上传、下载及批量下载实例 在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure ...
Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol(SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种基于SSH的安全文件传输协议,它提供了在不安全网络上安全...
在Java编程中,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,常用于在服务器之间或客户端与服务器之间进行文件的上传和下载。Java提供了多种库来支持SFTP操作,例如JSch(Java Secure Channel)...
在Java编程中,Secure File Transfer Protocol (SFTP) 是一种安全的文件传输协议,用于在客户端和服务器之间传输文件。SFTP通常与SSH(Secure Shell)结合使用,提供加密的数据传输,确保数据的安全性。本资源包含...
在Java编程中,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,常用于在本地系统和远程服务器之间安全地传输文件。JSch(Java Secure Channel)是一个开放源码的Java库,它实现了SSH2协议,包括...
Java SFTP上传涉及的技术栈主要围绕Java Secure Channel (JSch) 库,Java Cryptography Extension (JCE) 政策,以及PuTTY工具。这些组件在实现安全的文件传输协议(SFTP)时扮演着关键角色。 首先,让我们深入了解每...
基于开源APACHE MINA SSHD类库,实现SFTP服务,关闭SSH服务,支持通过配置XML文件指定用户名、密码或密钥登录,摆脱SFTP服务必须使用操作系统...项目使用JAVA(JRE1.8+),亦可参考本项目进行深度SFTP服务定制开发。
在Java编程中,实现Secure File Transfer Protocol (SFTP) 功能是常见的需求,尤其是在处理远程文件操作时。本文将详细讲解如何使用开源库JSch来实现在Java中进行SFTP的上传、下载以及删除文件的方法。 JSch是一个...
Java操作SFTP(Secure File Transfer Protocol)主要依赖于第三方库,如JSch。JSch是一个纯Java实现的SSH2库,允许开发人员连接到支持SFTP的服务器,进行文件的上传、下载以及执行其他相关操作。本文将详细介绍如何...
首先,为了在Java中使用SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,提供了SSH2协议的实现,包括SFTP服务。在描述中提到的“jar包”可能就是JSch的库文件。要使用...
Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol (SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种安全的网络协议,用于在客户端和服务器之间交换文件,它基于...
首先,为了在Java中实现SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,它实现了SSH2协议,包括SFTP子协议。安装JSch库后,我们可以在项目中引入对应的jar包。 下面...
本文将详细探讨如何使用Java实现SFTP的文件上传和下载功能,以及如何利用jcraft库来完成这一任务。 首先,jcraft是一个日本开发者团队创建的开源项目,提供了Java实现的SSH2库,其中包括对SFTP的支持。在本示例中,...
需要配合com.jcraft.jsch包使用 下载地址:http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.51/jsch-0.1.51.jar/download
在Java编程环境中,有时我们需要与远程服务器进行文件传输,这时SFTP(Secure File Transfer Protocol,安全文件传输协议)就派上了用场。SFTP是基于SSH的文件传输协议,提供了安全的数据传输。在这个示例中,我们将...
1分让你得到sftp常用操作工具,工具实现如下操作: 1)得到当前工作目录地址 2)改变目录为配置的远程目录 3)取文件目录列表 4)取文件列表 5)下载文件 6)复制文件 7)删除文件 8)目录是否存在,文件是否存在 9)移动文件 ...
Java SFTP 应用与开发涉及多个核心概念和技术,包括SFTP协议、非对称加密、密钥管理、SFTP服务器配置以及客户端编程接口。以下是对这些知识点的详细解释: 1. **SFTP(Secure File Transfer Protocol)**: SFTP是...
Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,我们可以利用JSch库来完成。 首先,我们需要理解SFTP协议。SFTP是一种安全的网络协议,...
JSch - Java实现的SFTP(文件上传详解篇)