Java 跨Linux服务器进行文件的上传和下载

项目迁移,之前在服务器A上面的项目因为需求需要迁移至服务器B,该项目使用的是A服务器上的一个图片库地址,所以需要对图片上传和下载功能进行修改,满足可以跨服务器进行操作。

使用的是SCPClient,进行操作。首先是Maven依赖

<dependency>
     <groupId>ch.ethz.ganymed</groupId>
     <artifactId>ganymed-ssh2</artifactId>
     <version>build210</version>
</dependency>

其次工具类代码如下:

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import org.apache.log4j.Logger;

import java.io.*;


public class LinuxFileUploadUtils {

    private static Logger logger = Logger.getLogger(LinuxFileUploadUtils.class);
    private static String IP = "*********";
    private static int PORT = ****;
    private static String USER = 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将文件Java上传Linux服务器的指定路径,可以使用SSH(Secure Shell)库和协议进行远程连接和文件输。下面是一个简单的示例代码,展示了如何使用JSch库在Java中进行文件上传: ```java import com.jcraft.jsch.*; public class FileUploader { public static void main(String[] args) { String hostname = "服务器地址"; int port = 22; String username = "登录用户名"; String password = "登录密码"; String localFilePath = "本地文件路径"; String remoteDirectory = "远程服务器上的目标文件夹路径"; JSch jsch = new JSch(); try { Session session = jsch.getSession(username, hostname, port); session.setConfig("StrictHostKeyChecking", "no"); session.setPassword(password); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; sftpChannel.cd(remoteDirectory); // 切换到远程服务器上的目标文件夹路径 sftpChannel.put(localFilePath, ""); // 将本地文件上传到指定路径,指定空字符串表示保持原有文件名 sftpChannel.disconnect(); session.disconnect(); System.out.println("文件上传成功!"); } catch (JSchException | SftpException e) { e.printStackTrace(); } } } ``` 在上述代码中,你需要将代码中的服务器地址、登录用户名、登录密码、本地文件路径以及远程服务器上的目标文件夹路径替换为你自己的实际设置。 这个例子使用JSch库建立与远程服务器的SSH连接,并使用SFTP协议进行文件输。首先,通过创建一个Session对象,设置登录用户名、服务器地址和端口号,并使用密码进行身份验证。然后,打开一个sftp通道,连接到远程服务器。通过调用cd()方法切换到目标文件夹路径。最后,使用put()方法将本地文件上传到指定的远程路径。完成后,断开sftp通道和SSH会话。 希望这个示例能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值