[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.mzph.cn/pingmian/72507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P5708 【深基2.习2】三角形面积(洛谷—python)

题目描述 一个三角形的三边长分别是 a、b、c,那么它的面积为 p(p−a)(p−b)(p−c)​,其中 p21​(abc)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。 输入格式 第一行输入三个实数 a,b,c,以空格隔开…

智慧加油站小程序数据库设计文档

智慧加油站系统 - 数据库与API设计文档 1. 数据库设计 1.1 ER模型 系统的核心实体关系如下&#xff1a; 用户(User) ---< 订单(Order) ---< 加油记录(RefuelRecord)| | || | vv v …

C++博客分享

本周的一些 C视频分享, 或许后续会做一些内容总结. 博客 Polymorphic, Defaulted EqualityConstexpr factors_ofC26: Removing language featuresBypassing the branch predictor Meeting C 2024 Clean CMake for C (library) developers - Kerstin KellerAn Introduction …

【蓝桥杯每日一题】3.16

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a; 解题代码&#xff1a; 二、高精度减法 题目链接&#xff1a; 题目描述&…

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…

SpringMVC(五)拦截器

目录 拦截器基本概念 一 单个拦截器的执行 1 创建拦截器 2 SpringMVC配置&#xff0c;并指定拦截路径。 3 运行结果展示&#xff1a; 二 多个拦截器的执行顺序 三 拦截器与过滤器的区别 拦截器基本概念 SpringMVC内置拦截器机制&#xff0c;允许在请求被目标方法处理的…

Hive SQL 精进系列:PERCENTILE_APPROX 搞定分位数

目录 一、引言二、percentile_approx 函数基础2.1 基本语法参数解释返回值简单示例 三、应用场景3.1 数据分析与报告3.2 数据清洗与异常值检测3.3 性能监控与优化 四、使用注意事项4.1 数据类型要求4.2 精度与性能平衡4.3 空值处理 五、总结 一、引言 百分位数作为一种常用的统…

pytorch快速入门——手写数字分类GPU加速

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; pytorch快速入门——手写数字分类GPU加速 一、tensor1&#…

【开源免费】基于SpringBoot+Vue.JS电商应用系统(JAVA毕业设计)

本文项目编号 T 242 &#xff0c;文末自助获取源码 \color{red}{T242&#xff0c;文末自助获取源码} T242&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

经历过的IDEA+Maven+JDK一些困惑

注意事项&#xff1a;由于使用过程中是IDEA绑定好另外2个工具&#xff0c;所以报错统一都显示在控制台&#xff0c;但要思考和分辨到底是IDEA本身问题导致的报错&#xff0c;还是maven导致的 使用前的配置 编辑期 定义&#xff1a;指的是从open projects开始&#xff0c;到执行…

【推理】大模型ReasonGraph:推理路径的可视化论文及代码分析

ReasonGraph:推理路径的可视化 ReasonGraph demo http://192.168.50.197:5001/ 作者的其他论文 ** ** LLM推理方法的相关工作

学习路之TP6 --重写vendor目录下的文件(服务覆盖command---优点:命令前后一致)

学习路之TP6 --重写vendor目录下的文件 一、新建命令文件&#xff1a;二、复制修改&#xff1a;Server.php三、新建服务类&#xff1a;WorkmanService.php四、注册服务五、运行效果 有需求要重写vendor\topthink\think-worker\src\command\Server.php 以实现修改代码 一、新建命…

【蓝图使用】绘制mesh顶点的法线

文章目录 绘制法线Normal准备工作UE5资源制作蓝图制作 参考 绘制法线Normal 参考[1]打算用蓝图走一遍渲染管线&#xff0c;还是可以的 准备工作 Blender制作一个三个顶点的模型 要不要材质无所谓&#xff0c;就一个三个顶点的mesh即可&#xff0c;参考[2] 找到一个法线贴…

【算法学习之路】10.二叉树

二叉树 前言一.简介二.题目123 前言 我会将一些常用的算法以及对应的题单给写完&#xff0c;形成一套完整的算法体系&#xff0c;以及大量的各个难度的题目&#xff0c;目前算法也写了几篇&#xff0c;题单正在更新&#xff0c;其他的也会陆陆续续的更新&#xff0c;希望大家点…

AI软件栈:推理框架(二)-Llama CPP1

Llama CPP的主要构造&#xff0c;GGUF和GGML为两个主要部分&#xff0c;包括模型描述文件和模型参数存储文件 文章目录 GGUF构建图读取权重 GGUF llama.cpp 的作者 Georgi Gerganov 提出的新一代大模型描述文件 GPT-Generated Unified Format&#xff0c;继承自GGML&#xff0…

CentOS 7 64 安装 Docker

前言 在虚拟机中安装 Docker 是一种常见的测试和开发环境搭建方式。通过在虚拟机上安装 Docker&#xff0c;可以方便地创建和管理容器化应用&#xff0c;同时避免对宿主机系统造成影响。以下是在 CentOS 7 虚拟机中安装 Docker 的详细步骤。 1. 更新系统&#xff08;可以不操作…

Flutter_学习记录_video_player、chewie 播放视频

1. video_player 视频播放 插件地址&#xff1a;https://pub.dev/packages/video_player 添加插件 导入头文件 import package:video_player/video_player.dart;Android配置&#xff08;iOS不用配置&#xff09; 修改这个文件&#xff1a;/android/app/src/main/AndroidMani…

VSCode通过SSH免密远程登录Windows服务器

系列 1.1 VSCode通过SSH远程登录Windows服务器 1.2 VSCode通过SSH免密远程登录Windows服务器 文章目录 系列1 准备工作2 本地电脑配置2.1 生成密钥2.2 VS Code配置密钥 3. 服务端配置3.1 配置SSH服务器sshd_config3.2 复制公钥3.3 配置权限&#xff08;常见问题&#xff09;3.…

强大的数据库DevOps工具:NineData 社区版

本文作者司马辽太杰&#xff0c; gzh&#xff1a;程序猿读历史 在业务快速变化与数据安全日益重要的今天&#xff0c;生产数据库变更管理、版本控制、数据使用是数据库领域的核心挑战之一。传统的解决方式往往采用邮件或即时通讯工具发起审批流程&#xff0c;再通过堡垒机直连数…

离线服务器ollama新增qwen2:0.5b模型

离线服务器ollama新增qwen2:0.5b模型 Dify集成ollama前面已经介绍过离线服务器CentOS使用的docker安装的ollama&#xff0c;其中在ollama中已经安装了deepseek-r1:1.5b。目前的需求是需要再安装一个qwen2:0.5b的模型&#xff0c;那么如何安装呢&#xff1f; 1.首先在有网的服…