最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSch教程使用sftp協(xié)議實(shí)現(xiàn)服務(wù)器文件載操作

 更新時(shí)間:2022年03月07日 17:16:57   作者:kl  
這篇文章主要為大家介紹了JSch如何使用sftp協(xié)議實(shí)現(xiàn)服務(wù)器文件上傳下載操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

Jsch是什么?

JSch 是SSH2的一個(gè)純Java實(shí)現(xiàn)。它允許你連接到一個(gè)sshd 服務(wù)器,使用端口轉(zhuǎn)發(fā),X11轉(zhuǎn)發(fā),文件傳輸?shù)鹊?。你可以將它的功能集成到你自己?程序中。同時(shí)該項(xiàng)目也提供一個(gè)J2ME版本用來(lái)在手機(jī)上直連SSHD服務(wù)器

Jsch功能很強(qiáng)大,博主這里主要用來(lái)做文件操作

怎么使用?

添加jar依賴

<dependency>
 <groupId>com.jcraft</groupId>
 <artifactId>jsch</artifactId>
 <version>0.1.53</version>
</dependency>

我把我的SftpUtil貼下面了,注釋還算清楚

/**
 * Content :sftp協(xié)議文件上傳下載
 * Created by kl on 2016/5/6.
 */
public class SftpUtil {
    /**
     * 上傳文件到指定服務(wù)器
     * @param ip 連接ip
     * @param user 用戶名
     * @param psw 密碼
     * @param port 端口 <=0 為默認(rèn)端口
     * @param fielPath 上傳的服務(wù)器路徑
     * @param serverFileName 服務(wù)器保存的文件名
     * @param instream 要上傳的文件流
     * @throws Exception
     */
    public static void sftpFileUpload(String ip,int port, String user, String psw, String fielPath,String serverFileName,InputStream instream) throws Exception {
        Session session =getSession( ip,  user,  psw,  port);
        Channel channel = null;
        try {
            //創(chuàng)建sftp通信通道
            channel = (Channel) session.openChannel("sftp");
            channel.connect(1000);
            ChannelSftp sftp = (ChannelSftp) channel;
            //進(jìn)入服務(wù)器指定的文件夾
            sftp.cd(fielPath);
            OutputStream outstream = sftp.put(serverFileName);
            byte b[] = new byte[1024*200];//每次傳輸200k
            int n;
            while ((n = instream.read(b)) != -1) {
                outstream.write(b, 0, n);
            }
            outstream.flush();
            outstream.close();
            instream.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.disconnect();
            if (channel!=null)channel.disconnect();
        }
    }
    /**
     * 從指定服務(wù)器下載文件到本地
     * @param ip 連接ip
     * @param user 用戶名
     * @param psw 密碼
     * @param port 端口 <=0 為默認(rèn)端口
     * @param fielPath 服務(wù)器文件路徑
     * @param serverFileName 要下載的文件名
     * @param outputStream 輸出到本地的文件流
     * @throws Exception
     */
    public static void sftpFileDownload(String ip,int port, String user, String psw, String fielPath,String serverFileName,OutputStream outputStream) throws Exception {
        Session session =getSession( ip,  user,  psw,  port);
        Channel channel = null;
        try {
            //創(chuàng)建sftp通信通道
            channel = (Channel) session.openChannel("sftp");
            channel.connect(1000);
            ChannelSftp sftp = (ChannelSftp) channel;
            //進(jìn)入服務(wù)器指定的文件夾
            sftp.cd(fielPath);
            sftp.get(serverFileName,outputStream);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.disconnect();
            if (channel!=null)channel.disconnect();
        }
    }
    /**
     * 刪除服務(wù)器指定文件
     * @param ip 連接ip
     * @param user 用戶名
     * @param psw 密碼
     * @param port 端口 <=0 為默認(rèn)端口
     * @param fielPath 服務(wù)器文件路徑
     * @param serverFileName 要?jiǎng)h除的文件名
     * @throws Exception
     */
    public static void sftpFileDelete(String ip,int port, String user, String psw, String fielPath,String serverFileName) throws Exception {
        Session session =getSession( ip,  user,  psw,  port);
        Channel channel = null;
        try {
            //創(chuàng)建sftp通信通道
            channel = (Channel) session.openChannel("sftp");
            channel.connect(1000);
            ChannelSftp sftp = (ChannelSftp) channel;
            //進(jìn)入服務(wù)器指定的文件夾
            sftp.cd(fielPath);
            sftp.rm(serverFileName);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.disconnect();
            if (channel!=null)channel.disconnect();
        }
    }
    /**
     * 查看指定目錄所有文件
     * @param ip
     * @param user
     * @param psw
     * @param port
     * @param fielPath
     * @throws Exception
     */
    public static Vector  seeServerFileList(String ip, int port,String user, String psw,  String fielPath)throws Exception{
        Session session =getSession( ip,  user,  psw,  port);
        Channel channel = null;
        Vector v=null;
        try {
            //創(chuàng)建sftp通信通道
            channel = (Channel) session.openChannel("sftp");
            channel.connect(1000);
            ChannelSftp sftp = (ChannelSftp) channel;
            //進(jìn)入服務(wù)器指定的文件夾
            sftp.cd(fielPath);
            //列出服務(wù)器指定的文件列表
             v = sftp.ls(fielPath);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.disconnect();
            if (channel!=null)channel.disconnect();
        }
        return  v;
    }
    /**
     * 連接服務(wù)器
     * @param ip 服務(wù)器地址
     * @param user 用戶名
     * @param psw  密碼
     * @param port  連接端口
     * @return
     * @throws Exception
     */
    public static Session getSession(String ip, String user, String psw, int port)throws Exception{
        Session session = null;
        JSch jsch = new JSch();
        if (port <= 0) {
            //連接服務(wù)器,采用默認(rèn)端口
            session = jsch.getSession(user, ip);
        } else {
            session = jsch.getSession(user, ip, port);
        }
        //如果服務(wù)器連接不上,則拋出異常
        if (session == null) {
            throw new Exception("sftp session is null");
        }
        session.setPassword(psw);//設(shè)置密碼
        //設(shè)置登陸超時(shí)時(shí)間
        session.connect(30000);//30s
        return  session;
    }
}

以上就是JSch教程使用sftp協(xié)議實(shí)現(xiàn)服務(wù)器文件上傳下載操作的詳細(xì)內(nèi)容,更多關(guān)于JSch sftp協(xié)議服務(wù)器文件上傳下載的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java基于UDP實(shí)現(xiàn)圖片群發(fā)功能

    java基于UDP實(shí)現(xiàn)圖片群發(fā)功能

    這篇文章主要為大家詳細(xì)介紹了java基于UDP實(shí)現(xiàn)圖片群發(fā)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java深入探索線程安全和線程通信的特性

    Java深入探索線程安全和線程通信的特性

    這篇文章主要介紹了Java線程安全和線程通信的特性,線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過(guò)同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會(huì)出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-05-05
  • Springboot啟動(dòng)擴(kuò)展點(diǎn)超詳細(xì)教程小結(jié)

    Springboot啟動(dòng)擴(kuò)展點(diǎn)超詳細(xì)教程小結(jié)

    這篇文章主要介紹了Springboot啟動(dòng)擴(kuò)展點(diǎn)超詳細(xì)教程小結(jié),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springboot使用filter獲取自定義請(qǐng)求頭的實(shí)現(xiàn)代碼

    springboot使用filter獲取自定義請(qǐng)求頭的實(shí)現(xiàn)代碼

    這篇文章主要介紹了springboot使用filter獲取自定義請(qǐng)求頭的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Linux服務(wù)器如何部署java項(xiàng)目

    Linux服務(wù)器如何部署java項(xiàng)目

    這篇文章主要介紹了Linux服務(wù)器如何部署java項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 完美解決Get和Post請(qǐng)求中文亂碼的問(wèn)題

    完美解決Get和Post請(qǐng)求中文亂碼的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決Get和Post請(qǐng)求中文亂碼的問(wèn)題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 簡(jiǎn)單了解Java垃圾回收器的種類

    簡(jiǎn)單了解Java垃圾回收器的種類

    這篇文章主要介紹了簡(jiǎn)單了解Java垃圾回收器的種類,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問(wèn)題

    IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問(wèn)題

    這篇文章主要介紹了IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問(wèn)題,這里小編使用的2020.2.2企業(yè)破解版本,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java找出1000以內(nèi)的所有完數(shù)

    Java找出1000以內(nèi)的所有完數(shù)

    一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為 "完數(shù) "。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)
    2017-02-02
  • java實(shí)現(xiàn)英文翻譯程序

    java實(shí)現(xiàn)英文翻譯程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)英文翻譯程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論

威海市| 五大连池市| 安平县| 彩票| 美姑县| 明光市| 津南区| 湘潭县| 略阳县| 凤台县| 庆阳市| 安达市| 中阳县| 峡江县| 浦城县| 甘洛县| 白玉县| 盐津县| 陕西省| 太白县| 昭通市| 桂平市| 南雄市| 淮阳县| 慈溪市| 沙河市| 长武县| 枝江市| 瑞昌市| 莆田市| 上栗县| 星座| 论坛| 赫章县| 鲁甸县| 封丘县| 右玉县| 贡嘎县| 田东县| 磐石市| 志丹县|