linux怎么查看本机内存大小
453
2022-09-07
java springboot + nginx 自建 文件集群服务器
目录
实现策略:
1.通过java 上传技术实现文件从客户端上传到服务器某个位置
2.服务器上传到的位置采用共享文件夹的方式实现,这样易于扩展
3.通过nginx服务器配置
4.location /0/的方式实现无线扩展
5.root 配置的内容系统的共享文件夹,越大越好
6.用户提交文件java 后台吧文件存放到 root后的文件夹中
7.当一个共享文件夹内部快放满的时候,我们新建一个新的 location
8.这样在用户访问文件服务器的时候回自动寻找自己的图库地址
实现策略:
1.通过java 上传技术实现文件从客户端上传到服务器某个位置
package com.supermap.file;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;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.ResponseBody;import org.springframework.web.multipart.MultipartFile;import com.supermap.uitl.DateTimeUitl;import java.io.File;import java.io.IOException;import java.util.UUID;import javax.servlet.* 文件上传类 * * @author yushen * */@Controllerpublic class UploadController { /** * 创建日志 * */ private static final Log LOGGER = LogFactory.getLog(UploadController.class); //获取基础文件服务路径地址(入服务器id,服务器文件服务路径)0代表第一个太文件服务器 @Value("${image.location.path}") private String Basicspath; @Value("${image.location.library}") //获取库存放地址 private String resourcelibrary; /** * 文件上传方法 * * @param file * @param session * @return */ @RequestMapping("/Upload") @ResponseBody public String Upload(@RequestParam("file") MultipartFile file,HttpSession session) { //通过session 获取用户的id 生成用户id库路径 Integer user = (Integer) session.getAttribute("user"); if(user == null) { return "上传失败,没有用户信息!"; } //记录日志 LOGGER.info(new StringBuffer("用户:"+user)+"开始上传文件!"); //文件判断为空 if (file.isEmpty()) { return "上传失败,请选择文件"; } //获取文件原始名称 String fileOriginalName = file.getOriginalFilename(); //设置文件前缀 String fliePrefix = ""; //设置文件后缀 String fileSuffix = ""; //校验文件名安全性 if(fileOriginalName.indexOf(".") != -1) {//判断事包含带有结尾符的文件 //只支持上传jpg和png格式文件图片 if(fileOriginalName.split("\\.")[1].equals("png") || fileOriginalName.split("\\.")[1].equals("jpg")) { fliePrefix = UUID.randomUUID().toString().replace("-", ""); fileSuffix = fileOriginalName.split("\\.")[1]; } else { return "上传失败,上传文件类型不是png和jpg格式!"; } } //系统设置路径 String newfilePath = resourcelibrary + DateTimeUitl.nowTimeA +"/" + user + "/" ; //唯一服务地址 String newfilePathOnly = Basicspath +newfilePath; //判断地址是否存在 File fileUIS = new File(newfilePathOnly); if(!fileUIS.exists()){//如果不存在文件夹创建文件夹 fileUIS.mkdirs(); } String OnlyStr = newfilePathOnly + fliePrefix + "." + fileSuffix; //设置文件载入到的地址 File dest = new File(OnlyStr); try { file.transferTo(dest); LOGGER.info("文件:"+fliePrefix + "." + fileSuffix+"上传成功"); return "上传成功,文件地址:" + newfilePath+fliePrefix + "." + fileSuffix; } catch (IOException e) { LOGGER.error(e.toString(), e); } return "上传失败!"; }}
配置文件 application.properties
#路径/image.location.path=f:/serverImagel/#文件存放库地址image.location.library=0/
一个文件中放不下的时候就修改一下这个地址
#路径/image.location.path=R:/serverImagel/#文件存放库地址image.location.library=1/
2.服务器上传到的位置采用共享文件夹的方式实现,这样易于扩展
3.通过nginx服务器配置
server { listen 80; #配置静态图片服务器地址 location /0/ {#为方便之后扩展文件服务器没一个库用一个单独的0开头 #这个地址放在那里可以随意最好采用共享磁盘的方式,这样就可以无限扩展 root F:\serverImagel; } }
4.location /0/的方式实现无线扩展
5.root 配置的内容系统的共享文件夹,越大越好
6.用户提交文件java 后台吧文件存放到 root后的文件夹中
7.当一个共享文件夹内部快放满的时候,我们新建一个新的 location
location /1/ {#为方便之后扩展文件服务器没一个库用一个单独的0开头 #这个地址放在那里可以随意最好采用共享磁盘的方式,这样就可以无限扩展 root E:\serverImagel; }
当发现服务器某个盘符快满的时候,就让代码自动修改配置文件 (一个修改java的,一个增加nginx的)
增加nginx的方式可以每次增加完毕后,记录上次增加的行数,对应算出下一次本次需要增加行数的位置
这样就实现了Tracker追踪器。
8.这样在用户访问文件服务器的时候回自动寻找自己的图库地址
文件上传web
访问地址:
SyncToy 可以支持 1)安全2)稳定
比较是微软自己的比起普通的软件强了特别多大家如果没别的常用软件可以试试这个。网上教程也挺多的可以去瞧瞧
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~