Java通过SSH实现文件上传下载功能实现之一工具类

Java通过SSH实现文件上传下载功能实现

实现的主要功能:

 1.上传
          压缩对应的文件夹,生成临时文件.zip ---->上传临时文件.zip,上传成功,删除本地临时文件  
         ----> 远程服务上解压到服务器指定路径,并删除服务器上临时zip文件  ---->删除配置文件information.txt
  2.下载
         压缩服务器指定文件夹,生成临时文件.zip ---->下载压缩文件到本地指定路径,下载完成,删除服务器上的 zip文件
         ---->解压本地压缩包,解压完成,删除 zip包 ---->删除配置文件information.txt

1.创建配置信息文件information.txt,内容格式如下:

;down;132.232.143.201;21;Administrator;test;C:\ftp\服务器测试\;E:\wangzgCode\sshLocal\;本地保存测试
#down;服务IP地址;端口;服务器用户名;服务器密码;服务器文件夹的路径;本地保存地址;本地保存文件名    
;up;132.232.143.201;21;Administrator;test;E:\wangzgCode\sshLocal;C:\ftp;服务器测试
#up;服务器IP地址;端口;服务器用户名;服务器密码;本地文件夹的路径;服务器保存地址;服务器保存文件名

2.解析配置文件其实很简单

这里我就贴一些关键代码,

1.读取配置文件的第一行内容,代码如下:

/**
	     * 读取配置信息
	     * @param filePath 文件路径
	     * @return 返回文件第一行内容,
		 *返回null表示文件不存在;返回为“”表示文件存在,内容为空;
	     */
	private static String readConfigInfo(){
		
		File file = new File(configPath);
		if(!file.exists()) {
			//文件不存在,即不做任何操作
			return null;
		}
		String result = "";
		try{
			//构造一个BufferedReader类来读取文件
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(configPath),"UTF-8"));
			
			result= br.readLine();
			//读取第一行配置信息
			System.out.println("load config" );
			br.close();
		}catch(Exception e){
			e.printStackTrace();
		}
		return result;
	}

2.构建配置信息的ConfigBean

private static ConfigBean buildConfigBean(String configStr) {
		
		ConfigBean configBean = null;
		if(StringUtils.isNotEmpty(configStr)) {
			String [] configArray = StringUtils.split(configStr,separator);
			//判断是否为上传类型up
			if(uploadType.equals(configArray[1])) {
				//#up;服务器IP地址;端口;服务器用户名;服务器密码;本地文件夹的路径;服务器保存地址;服务器保存文件名
				
				configBean = new ConfigBean();
				con
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
抱歉,我是一个语言模型AI,无法编写和执行实际的程序代码。但是,我可以向您提供一个可能的解决方案的思路。 远程修改nginx配置文件的工具类,可以通过以下步骤实现: 1. 使用JavaSSH连接到远程服务器,例如JSch。 2. 在SSH连接上打开一个通道,并执行需要修改的命令,例如修改Nginx配置文件。 3. 将修改后的配置文件上传到远程服务器上,例如使用SCP或SFTP。 4. 重启Nginx服务器以使更改生效。 以下是一个可能的示例代码,需要根据您的具体情况进行修改: ``` import com.jcraft.jsch.*; import java.io.*; public class RemoteNginxConfigUpdater { private static final String REMOTE_HOST = "remote_server_address"; private static final String REMOTE_USER = "remote_server_username"; private static final String REMOTE_PASSWORD = "remote_server_password"; public static void updateConfig(String localConfigPath, String remoteConfigPath) throws JSchException, IOException { JSch jsch = new JSch(); Session session = jsch.getSession(REMOTE_USER, REMOTE_HOST, 22); session.setPassword(REMOTE_PASSWORD); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); ChannelExec channel = (ChannelExec) session.openChannel("exec"); channel.setCommand("sudo echo 'new_config' > " + remoteConfigPath); channel.connect(); InputStream in = channel.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } channel.disconnect(); session.disconnect(); } } ``` 在这个示例代码中,我们使用JSch库连接到远程服务器,执行一个命令来修改Nginx配置文件。然后,我们可以将本地的配置文件上传到远程服务器上,以覆盖原有的配置文件。最后,我们重启Nginx服务器以使更改生效。 请注意,这只是一个示例代码,您需要进行适当的修改和测试,以确保它符合您的要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不安分的猿人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值