501 words
3 minutes
后端:上传文档项目

存储技术文档后端项目:#

你可能需要的文档:#

要求:

  • 系统需求: 支持 Markdown 文件的上传、元数据存储以及权限化的访问管理

  • 用户与权限: 支持基础的JWT认证, 角色权限可以分成User/Admin

  • 文档管理:

    • 用户可以上传 .md 文件:
      • 文件大小限制在 5mb

      • 支持分页查询

      • 支持通过文件名模糊搜索, 查询返回文档元数据

      • 后端需要读取 Markdown 的前 200 个字符作为“摘要”存入数据库字段。如果内容少于 10 个字符,视为无效文档,拒绝上传。此处考虑事务一致性

技术栈:#

(maven) Spring Boot + Spring Data JPA + PostgreSQL

My solutions:#

  • 文档内容存文件,元数据存数据库

My steps:#

  1. 实现上传md文件:

    • 文件blobs与元数据commits分离
    • 将commit类接入数据库表
    • upload接口实现:
      • 文件blob写入到后端文件夹
      • 创建文件对应的元数据对象commit,然后把它写入数据库
  2. 实现JWT认证:

    1. 引入JWT依赖
    2. 生成Token
    3. 创建拦截器:解析验证Token (拦截器创建之后,需要将拦截器注册到Spring Boot中)
  3. 实现用户系统:

    1. 将User类接入数据库表
    2. 实现account接口:
      1. 登录接口:接受username, password参数, 比对数据库中的
      2. 注册接口:创建user类并写入数据库
  • Others:
    • 模糊搜索的实现使用Spring Data JPA自带关键词查询方法

notes!#

  • User类接入数据库表时不要用 user 当表名,user 为PostgreSQL 的关键字,替换表名使用@Table(name = “users”)
  • 对于Spring Data JPA自带的Repository方法名,必须和实体字段名 一致(区分大小写) ex: Spring Data JPA自带关键词查询方法
后端:上传文档项目
https://www.modo.org.cn/posts/后端上传文档小项目/
Author
Welcome, traveler
Published at
2026-02-04
License
CC BY-NC-SA 4.0