zoukankan      html  css  js  c++  java
  • ftp上传到nas

    <dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.3</version>
    </dependency>
    <dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.54</version>
    </dependency>

    package cn.test.uploadfile.nas;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    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;

    public class NasUtils {
    public static void main(String[] args) throws IOException {
    NasUtils client = new NasUtils();
    ChannelSftp sftp1 = client.connect("139.196.174.174", 22, "root","zhao1234.");
    System.err.println(sftp1);
    client.upload("/opt/file", "D:/pic/00000926.jpg", sftp1);
    //client.download("/var/", "person1.xml", "D://person12.xml", sftp1);
    boolean closed = sftp1.isClosed();
    System.err.println(closed);
    }




    /**
    * 连接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();
    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());
    System.out.println("上传成功!");
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    if(sftp!=null){
    sftp.quit();
    }
    }
    }

    /**
    * 下载文件
    * @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();
    } finally {
    if(sftp!=null){
    sftp.quit();
    }
    }
    }

    /**
    * 删除文件
    * @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();
    } finally {
    if(sftp!=null){
    sftp.quit();
    }
    }
    }

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


    }

  • 相关阅读:
    191. Number of 1 Bits
    190. Reverse Bits
    532. K-diff Pairs in an Array
    485. Max Consecutive Ones
    236. Lowest Common Ancestor of a Binary Tree
    235. Lowest Common Ancestor of a Binary Search Tree
    面试题68:树中两个节点的最低公共祖先
    Java—方法重写
    Java—继承
    代码块(Java)
  • 原文地址:https://www.cnblogs.com/zhaoblog/p/15616675.html
Copyright © 2011-2022 走看看