java通过代码连接另一台服务器,可实现将文件发送至另一台服务器

一般可以将数据库中的数据生成csv文件,对于多服务器部署的分布式微服务,有时候需要将生成的文件放在外部网关或其他服务器中

本篇可以实现通过代码连接其他服务器,并可以传送文件至其他服务器中,并且路径可以自定义
注:需要有另一台服务器的权限账号

连接另一台服务器的代码如下

/**
     * @param host 
     *            另一台服务器地址 
     * @param port 
     *            另一台服务器端口 
     * @param username 
     *            另一台服务器权限账户用户名 
     * @param password 
     *            另一台服务器权限账户密码 
     * @return 
     */
public ChannelSftp connect(String host, int port, String username,  String password) {  
            ChannelSftp sftp = null;   
            JSch jsch = new JSch();  
            jsch.getSession(username, host, port);  
            Session sshSession = jsch.getSession(username, host, port);   
            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; 
            return sftp;  
    } 

将本地服务器上的文件传送至另一台服务器代码如下

/** 
     * 文件上传 
     *  
     * @param directory  上传至另一台服务器的存储路径
     * @param uploadFile 本服务器需要上传的文件路径及文件名
     * @param sftp  调用上方连接另一台服务器的方法connect
     */  
    public void SendFile(String directory, String uploadFile, ChannelSftp sftp) {  
        
        sftp.cd(directory);  
        File file = new File(uploadFile);  
        sftp.put(new FileInputStream(file), file.getName());  
        
    }

从另一台服务器上传送文件至本地服务器代码

/** 
     * 文件下载 
     *  
     * @param directory 另一台服务器的存储路径 
     * @param downloadFile 要下载的文件路径及文件名 
     * @param saveFile 下载下来的文件名(如下载到本地服务器需要更改文件名) 
     * @param sftp 调用上方连接另一台服务器的方法connect
     */  
    public void download(String directory, String downloadFile,  String saveFile, ChannelSftp sftp) {  
         
            sftp.cd(directory);  
            File file = new File(saveFile);  
            sftp.get(downloadFile, new FileOutputStream(file));  
         
    }  
  • 6
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值