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

[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的关联是无法建立的。)
    在这里插入图片描述

相关文章:

  • centos7上安装Docker
  • (性能测试)性能测试工具 2.jmeter的环境搭建 3jmeter元件和4使用实例 5jmeter元件和参数化
  • 算法模型全解析:优缺点、场景适配与选择逻辑
  • 一次Milvus迁移的记录
  • Android 应用开发:架构重构、性能优化与离线缓存系统实现
  • CobaltStrike详细使用及Linux上线
  • Linux:进程程序替换
  • 寻找数字c++
  • iOS OC匹配多个文字修改颜色和字号
  • YOLO优化之多信息融合MIF
  • mesh开发解析
  • Express.js 是一个轻量级、灵活且功能强大的 Node.js Web 应用框架
  • 洛谷每日1题-------Day20__P1401 [入门赛 #18] 禁止在 int 乘 int 时不开 long long
  • 【愚公系列】《高效使用DeepSeek》009-PPT大纲自动生成
  • Java中的深拷贝与浅拷贝
  • C++数据结构1——栈结构详解
  • 文本生成新框架:3倍无损加速的奥秘探究
  • 04_Linux驱动_05_pinctrl子系统
  • 周志华机器学习西瓜书 第九章 聚类-学习笔记
  • Springboot+mybatis实现增删改查操作
  • 湖北石首市委副书记、市长付勇接受审查调查
  • 祝贺!苏翊鸣成功解锁“2160”
  • 长沙潮宗街内“金丝楠木老屋文旅博物馆”起火:明火已扑灭,无伤亡
  • 印度一战机在巴基斯坦旁遮普省被击落,飞行员被俘
  • 近4小时会谈、3项联合声明、20多份双边合作文本,中俄元首今年首次面对面会晤成果颇丰
  • 遇冰雹天气,西安机场新航站楼成“水帘洞”