当前位置: 首页 > article >正文

基于Springboot+服务器磁盘的本地文件存储方案

[local-file-system]基于服务器磁盘的本地文件存储方案

仅提供后端方案
github

环境

  • JDK11
  • linux/windows/mac

应用场景

  • 适用于ToB业务,中小企业的单体服务,仅使用磁盘存储文件的解决方案

  • 仅使用服务器磁盘存储

  • 与业务实体相结合的文件存储方案,如企业中对于设备信息维护,需要上传对应文件,类型包括”设备采购合同文件“,”设备验收照片“等,在本项目中的维护形式可见如下图。

效果示例

在这里插入图片描述

表结构设计

本项目使用sqlserver作为数据库,目前仅提供sqlserver的表脚本初始化sql。

本项目持久性框架使用Mybatis-Plus,可轻松切换至Oracle,MySql等数据库。

本项目主要使用两个表

  • t_file 文件信息的存储表,包含文件名称、类型后缀、大小、相对文件路径(目前file_path表相对)、module模块名(可对应配置存储目录)。注意,此表中module_name模块用于分类。
  • tr_link_file 文件与模块的关联表,使用link_id表示其他各种表(设备表、工厂表)的id主键, file_id表示t_file的id主键。module_name表示属于哪个模块的文件关联(可以表示此link_id的来源)。

见如下图,可表示为

  • 设备需要维护设备照片信息,我们需要提前定义module_name为”Equipment_photo“,在前端通过api上传后存储到t_file,而实际文件存储到对应磁盘位置,并返回FileInfo信息(fileId,fileName),前端得到已经存储的文件id后,可在用户点击保存信息时,将fileId集合携带,系统再进行关联操作,在tr_link_file表中维护对应的关联数据。(缺点:用户上传文件后,如果不进行保存设备信息,那么tr_link_file的关联是无法建立的。)
    在这里插入图片描述

http://www.kler.cn/a/589143.html

相关文章:

  • 二分算法刷题
  • 【uni-app运行错误】SassError: expected selector @import “@/uni.scss“;
  • 11 Collection集合、Map集合:分类、功能、遍历、底层原理,Stream流:获取、中间方法、终结方法 (黑马Java视频笔记)
  • 探索 Rust 高效 Web 开发:Hyperlane 框架深度解析
  • Spring Boot 参数校验异常与错误编码映射方案
  • 线性回归中的最小二乘法:直接法与梯度下降的比较
  • Android 高版本兼容的原生定位工具类封装(支持 Android 5.0 到 Android 14)
  • kotlin中的模块化结构组件
  • 机器人交社保属于“无稽之谈”?
  • 《Operating System Concepts》阅读笔记:p309-p330
  • uni-app 生命周期
  • 数学建模 第二节
  • 深度学习模型压缩:非结构化剪枝与结构化剪枝的定义与对比
  • 基于C#的以太网通讯实现:TcpClient异步通讯详解
  • 政策助力,3C 数码行业数字化起航
  • 考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表
  • 运维工具推荐 -- 宝塔面板:一键部署服务器
  • nexus的使用
  • Linux搭建conda虚拟环境流程
  • never_give_up