`
zhangbin505
  • 浏览: 11812 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java sftp

阅读更多
  1. package com.ikea.utils;   
  2.   
  3.   
  4. import java.io.File;   
  5. import java.io.FileInputStream;   
  6. import java.io.FileOutputStream;   
  7. import java.util.Properties;   
  8. import java.util.Vector;   
  9. import com.jcraft.jsch.Channel;   
  10. import com.jcraft.jsch.ChannelSftp;   
  11. import com.jcraft.jsch.JSch;   
  12. import com.jcraft.jsch.Session;   
  13. import com.jcraft.jsch.SftpException;   
  14. import com.jcraft.jsch.ChannelSftp.LsEntry;   
  15.   
  16. public class SFTPUtils {   
  17.     /**  
  18.      * 连接sftp服务器  
  19.      *   
  20.      * @param host  
  21.      *            主机  
  22.      * @param port  
  23.      *            端口  
  24.      * @param username  
  25.      *            用户名  
  26.      * @param password  
  27.      *            密码  
  28.      * @return  
  29.      */  
  30.     public ChannelSftp connect(String host, int port, String username,   
  31.             String password) {   
  32.         ChannelSftp sftp = null;   
  33.         try {   
  34.             JSch jsch = new JSch();   
  35.             jsch.getSession(username, host, port);   
  36.             Session sshSession = jsch.getSession(username, host, port);   
  37.             System.out.println("Session created.");   
  38.             sshSession.setPassword(password);   
  39.             Properties sshConfig = new Properties();   
  40.             sshConfig.put("StrictHostKeyChecking""no");   
  41.             sshSession.setConfig(sshConfig);   
  42.             sshSession.connect();   
  43.             System.out.println("Session connected.");   
  44.             System.out.println("Opening Channel.");   
  45.             Channel channel = sshSession.openChannel("sftp");   
  46.             channel.connect();   
  47.             sftp = (ChannelSftp) channel;   
  48. //          sshSession.disconnect();   
  49.             System.out.println("Connected to " + host + ".");   
  50.         } catch (Exception e) {   
  51.   
  52.         }   
  53.         return sftp;   
  54.     }   
  55.   
  56.     /**  
  57.      * 上传文件  
  58.      *   
  59.      * @param directory  
  60.      *            上传的目录  
  61.      * @param uploadFile  
  62.      *            要上传的文件  
  63.      * @param sftp  
  64.      */  
  65.     public void upload(String directory, String uploadFile, ChannelSftp sftp) {   
  66.         try {   
  67.             sftp.cd(directory);   
  68.             File file = new File(uploadFile);   
  69.             sftp.put(new FileInputStream(file), file.getName());   
  70.         } catch (Exception e) {   
  71.             e.printStackTrace();   
  72.         }   
  73.     }   
  74.   
  75.     /**  
  76.      * 下载文件  
  77.      *   
  78.      * @param directory  
  79.      *            下载目录  
  80.      * @param downloadFile  
  81.      *            下载的文件  
  82.      * @param saveFile  
  83.      *            存在本地的路径  
  84.      * @param sftp  
  85.      */  
  86.     public void download(String directory, String downloadFile,   
  87.             String saveFile, ChannelSftp sftp) {   
  88.         try {   
  89.             sftp.cd(directory);   
  90.             File file = new File(saveFile);   
  91.             sftp.get(downloadFile, new FileOutputStream(file));   
  92.         } catch (Exception e) {   
  93.             e.printStackTrace();   
  94.         }   
  95.     }   
  96.   
  97.     /**  
  98.      * 删除文件  
  99.      *   
  100.      * @param directory  
  101.      *            要删除文件所在目录  
  102.      * @param deleteFile  
  103.      *            要删除的文件  
  104.      * @param sftp  
  105.      */  
  106.     public void delete(String directory, String deleteFile, ChannelSftp sftp) {   
  107.         try {   
  108.             sftp.cd(directory);   
  109.             sftp.rm(deleteFile);   
  110.         } catch (Exception e) {   
  111.             e.printStackTrace();   
  112.         }   
  113.     }   
  114.   
  115.     /**  
  116.      * 列出目录下的文件  
  117.      *   
  118.      * @param directory  
  119.      *            要列出的目录  
  120.      * @param sftp  
  121.      * @return  
  122.      * @throws SftpException  
  123.      */  
  124.     public Vector<LsEntry> listFiles(String directory, ChannelSftp sftp)   
  125.             throws SftpException {   
  126.         return sftp.ls(directory);   
  127.     }   
  128.   
  129.     public static void main(String[] args) {   
  130.         SFTPUtils sf = new SFTPUtils();   
  131.         String host = "******";   
  132.         int port = 22;   
  133.         String username = "****";   
  134.         String password = "****";   
  135.         String directory = "/****/";   
  136.         String saveFile = "";   
  137.         String downLoadDirectory = "D:\\";   
  138.         ChannelSftp sftp = null;   
  139.         Session sshSession = null;   
  140.         try {   
  141.             JSch jsch = new JSch();   
  142.             jsch.getSession(username, host, port);   
  143.             sshSession = jsch.getSession(username, host, port);   
  144.             System.out.println("Session created.");   
  145.             sshSession.setPassword(password);   
  146.             Properties sshConfig = new Properties();   
  147.             sshConfig.put("StrictHostKeyChecking""no");   
  148.             sshSession.setConfig(sshConfig);   
  149.             sshSession.connect();   
  150.             System.out.println("Session connected.");   
  151.             System.out.println("Opening Channel.");   
  152.             Channel channel = sshSession.openChannel("sftp");   
  153.             channel.connect();   
  154.             sftp = (ChannelSftp) channel;   
  155.             System.out.println("Connected to " + host + ".");   
  156.                
  157.                
  158.                
  159. //          sf.upload(directory, uploadFile, sftp);   
  160. //          sf.download(directory, downloadFile, saveFile, sftp);   
  161.     //      sf.delete(directory, deleteFile, sftp);   
  162.            
  163. //          sftp.cd(directory);   
  164.                
  165.                
  166.             Vector<LsEntry> v = sf.listFiles(directory, sftp);   
  167.             for (LsEntry e : v) {   
  168.                 if(!e.getFilename().startsWith(".")) {   
  169.                     saveFile = downLoadDirectory + e.getFilename();   
  170.                     sf.download(directory, e.getFilename(), saveFile, sftp);   
  171.                 }   
  172.             }   
  173.             System.out.println("finished");   
  174.         } catch (Exception e) {   
  175.             e.printStackTrace();   
  176.         } finally {   
  177.             sftp.exit();   
  178.             sshSession.disconnect();   
  179.         }   
  180.     }   
  181. }  
分享到:
评论

相关推荐

    JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例 在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure ...

    java sftp文件上传

    Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol(SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种基于SSH的安全文件传输协议,它提供了在不安全网络上安全...

    JavaSFTP上传文件

    在Java编程中,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,常用于在服务器之间或客户端与服务器之间进行文件的上传和下载。Java提供了多种库来支持SFTP操作,例如JSch(Java Secure Channel)...

    JAVA SFTP上传和下载所需JAR和源码

    在Java编程中,Secure File Transfer Protocol (SFTP) 是一种安全的文件传输协议,用于在客户端和服务器之间传输文件。SFTP通常与SSH(Secure Shell)结合使用,提供加密的数据传输,确保数据的安全性。本资源包含...

    Java sftp上传文件夹demo

    在Java编程中,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,常用于在本地系统和远程服务器之间安全地传输文件。JSch(Java Secure Channel)是一个开放源码的Java库,它实现了SSH2协议,包括...

    java SFTP上传所需jar和秘钥工具

    Java SFTP上传涉及的技术栈主要围绕Java Secure Channel (JSch) 库,Java Cryptography Extension (JCE) 政策,以及PuTTY工具。这些组件在实现安全的文件传输协议(SFTP)时扮演着关键角色。 首先,让我们深入了解每...

    SftpServer.zip(纯JAVASFTP服务可深度定制)

    基于开源APACHE MINA SSHD类库,实现SFTP服务,关闭SSH服务,支持通过配置XML文件指定用户名、密码或密钥登录,摆脱SFTP服务必须使用操作系统...项目使用JAVA(JRE1.8+),亦可参考本项目进行深度SFTP服务定制开发。

    JAVA实现SFTP上传,下载,删除等方法

    在Java编程中,实现Secure File Transfer Protocol (SFTP) 功能是常见的需求,尤其是在处理远程文件操作时。本文将详细讲解如何使用开源库JSch来实现在Java中进行SFTP的上传、下载以及删除文件的方法。 JSch是一个...

    java操作sftp的工具类(JSch)

    Java操作SFTP(Secure File Transfer Protocol)主要依赖于第三方库,如JSch。JSch是一个纯Java实现的SSH2库,允许开发人员连接到支持SFTP的服务器,进行文件的上传、下载以及执行其他相关操作。本文将详细介绍如何...

    sftp上传下载 java

    首先,为了在Java中使用SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,提供了SSH2协议的实现,包括SFTP服务。在描述中提到的“jar包”可能就是JSch的库文件。要使用...

    java sftp文件上传代码

    Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol (SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种安全的网络协议,用于在客户端和服务器之间交换文件,它基于...

    java 开发sftp下载上传

    首先,为了在Java中实现SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,它实现了SSH2协议,包括SFTP子协议。安装JSch库后,我们可以在项目中引入对应的jar包。 下面...

    java实现sftp上传下载文件

    本文将详细探讨如何使用Java实现SFTP的文件上传和下载功能,以及如何利用jcraft库来完成这一任务。 首先,jcraft是一个日本开发者团队创建的开源项目,提供了Java实现的SSH2库,其中包括对SFTP的支持。在本示例中,...

    java SFTP下载工具类 可上传,下载

    需要配合com.jcraft.jsch包使用 下载地址:http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.51/jsch-0.1.51.jar/download

    java版SFTP实现示例(使用jsch)

    在Java编程环境中,有时我们需要与远程服务器进行文件传输,这时SFTP(Secure File Transfer Protocol,安全文件传输协议)就派上了用场。SFTP是基于SSH的文件传输协议,提供了安全的数据传输。在这个示例中,我们将...

    java实现sftp操作工具类

    1分让你得到sftp常用操作工具,工具实现如下操作: 1)得到当前工作目录地址 2)改变目录为配置的远程目录 3)取文件目录列表 4)取文件列表 5)下载文件 6)复制文件 7)删除文件 8)目录是否存在,文件是否存在 9)移动文件 ...

    javasftp应用和开发文档资料.pdf

    Java SFTP 应用与开发涉及多个核心概念和技术,包括SFTP协议、非对称加密、密钥管理、SFTP服务器配置以及客户端编程接口。以下是对这些知识点的详细解释: 1. **SFTP(Secure File Transfer Protocol)**: SFTP是...

    使用Java向服务器上传文件压缩包并实现解压缩

    Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,我们可以利用JSch库来完成。 首先,我们需要理解SFTP协议。SFTP是一种安全的网络协议,...

    JSch - Java实现的SFTP(文件上传详解篇)

    JSch - Java实现的SFTP(文件上传详解篇)

Global site tag (gtag.js) - Google Analytics