当前位置: 首页> 游戏> 攻略 > 多渠道分销系统_什么是企业网络营销平台_万能的搜索引擎_seo岗位是什么意思

多渠道分销系统_什么是企业网络营销平台_万能的搜索引擎_seo岗位是什么意思

时间:2025/7/9 17:47:22来源:https://blog.csdn.net/weixin_72563504/article/details/144275035 浏览次数:0次
多渠道分销系统_什么是企业网络营销平台_万能的搜索引擎_seo岗位是什么意思

本篇文章讲述一个springboot项目如何实现一个文件上传接口,涉及vsftpd服务、SSH协议以及对linux系统的一些配置。

一、springboot工程部分

本篇文章略过springboot创建过程,具体见之前发过的文章

1.1在pom.xml中添加SFTP(SSH 文件传输协议)的依赖(请注意你的版本号,下面不在赘述)

jsch 是一个用Java编写的SSH2协议库,它可以用来实现SFTP客户端和服务器端的功能。

<!--        添加sftp依赖--><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>

1.2application.yml配置文件

sftp_ubantu:host: 192.168.000.000    //你的linux的ipport: 22                 //端口号username: root            //用户名password: *********remoteDir: /XXXX/XXXX/XXXX  //指定文件路径

1.3SFTP工具类


import com.jcraft.jsch.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.InputStream;@Component
public class SFTPUtil {private static String host;@Value("${sftp_ubantu.host}")public void setHost(String host) {SFTPUtil.host = host;}private static Integer port;@Value("${sftp_ubantu.port}")public void setPort(Integer port) {SFTPUtil.port = port;}private static String username;@Value("${sftp_ubantu.username}")public void setUsername(String username) {SFTPUtil.username = username;}private static String password;@Value("${sftp_ubantu.password}")public void setPassword(String password) {SFTPUtil.password = password;}private static String remoteDir;@Value("${sftp_ubantu.remoteDir}")public void setRemoteDir(String remoteDir) {SFTPUtil.remoteDir = remoteDir;}public static void uploadFile(InputStream inputStream, String fileName) throws IOException, JSchException, SftpException {// TODO Auto-generated method stubSession session = null;Channel channel = null;JSch jsch = new JSch();try {//创建会话session = jsch.getSession(username, host, port != null ? port : 22);//设置密码//设置密码session.setPassword(password);//设置第一次登陆的时候提示,可选值:(ask | yes | no)session.setConfig("StrictHostKeyChecking", "no");//设置连接超时时间session.connect(30000);//创建sftp通信通道channel = session.openChannel("sftp");channel.connect(1000);//创建sftp客户端ChannelSftp sftp = (ChannelSftp) channel;//进入远程目录sftp.cd(remoteDir);//上传文件sftp.put(inputStream, fileName);inputStream.close();}  finally {//关流操作if (session != null) {session.disconnect();}if (channel != null) {channel.disconnect();}}}}

1.4接口代码

import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.SftpException;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;@RestController
@RequestMapping("/test")
public class FileController {//上传文件@PostMapping("/upload")public Result uploadFile(@RequestParam("file") MultipartFile file) {if (file.isEmpty()) {return Result.error("文件为空,请重新上传文件");}InputStream inputStream = null;try {inputStream = file.getInputStream();SFTPUtil.uploadFile(inputStream, file.getOriginalFilename());return Result.success("文件上传成功");} catch (IOException | JSchException | SftpException e) {return Result.error("文件上传失败"+e.getMessage());}finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
}

二、Linux系统中的相关配置

2.1 配置虚拟机网络

首先将虚拟机的网络进行配置,选用桥接模式,使得虚拟机与本机在同一字段

如果不是桥接模式则依次点击虚拟机----->设置 或者按CTRL+D唤出虚拟机设置

2.2ubuntu安装sftp服务器

更新系统包确保系统包是最新的。打开终端运行下面的命令

sudo apt update
sudo apt upgrade -y

使用apt包管理器安装vsftpd。

sudo apt install vsftpd

检查vsftpd服务是否正在运行:

sudo systemctl status vsftpd

2.3配置vsftp服务器

要配置vsftpd服务器以允许root用户和普通用户上传文件和创建文件夹

  1. 打开终端
  2. 使用文本编辑器编辑vsftpd配置文件。例如,使用vim或vi
sudo vim /etc/vsftpd.conf
  1. 在配置文件中找到以下几个被注释的命令行,按i键切换至插入模式,删掉#取消注释
//允许写命令
write_enable=YES
//允许上传
upload_enable=YES

按shift+:进入命令模式,输入wq存盘退出

当配置文件发送改动的时候需要重启vsftpd服务器

sudo systemctl resatrt vsftpd

2.4安装OpenSSH服务器

OpenSSH 是一个广泛使用的 SSH 服务器实现,它默认支持 SFTP,运行下面命令。

sudo apt install openssh-server -y

安装完成后,OpenSSH 服务器会自动启动并设置为开机自启。您可以使用以下命令检查 SSH 服务的状态:

sudo systemctl status ssh

如果服务没有运行,可以使用以下命令手动启动它:

sudo systemctl start ssh

6.配置防火墙

开放你要请求的端口,一般vsftp是22端口

sudo ufw allow 22/tcp

通过以上步骤应该就可以实现vsftp文件上传了

关键字:多渠道分销系统_什么是企业网络营销平台_万能的搜索引擎_seo岗位是什么意思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: