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

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

[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/587120.html

相关文章:

  • CentOS 系统安装 docker 以及常用插件
  • Elasticsearch分页查询、关键词高亮与性能优化全解析
  • 国产芯片替代方案:解析沁恒以太网控制器芯片,内置MAC地址
  • 【MySQL】undo日志类型
  • CSS3学习教程,从入门到精通,CSS3 选择器权重问题语法知识点及案例代码(5)
  • Freertos--把队列加入队列集
  • 使用tiptap快速搭建markdown-富文本编辑器
  • 电路基础【2】:三极管基础:PNP与NPN三极管详解
  • FPGA 中 assign 和 always 区别
  • 2.4滑动窗口专题:将 x 减到 0 的最小操作数
  • 均方误差(MSE)与最小二乘法(LS)的区别
  • 数字孪生像魔镜,映照出无限可能的未来
  • 二进制数(十进制转二进制)
  • 标定棋盘格大小的选择
  • 车载Android音频系统 CarAudioService
  • React 常用 Hooks 详细解析
  • 保持docker内容器一直运行
  • ChatGPT客户端无法在微软应用商店下载的解决方法
  • 生态安全的范式
  • Docker+Flask 实战:打造高并发微服务架构