0%

cxdisk-readme

这是成蹊加密文件管理系统(cxdisk)的使用说明文档。

常见问题

1.文件加密上传失败

没有设置公钥,请点击保密下生成密钥对,右键设置生成的key文件为公钥。

image-20250228230124821
image-20250228230225411
2.文件下载卡住

文件被加密,无法直接下载。

3.文件解密下载卡住
  • 没有设置私钥。
  • 私钥和加密的公钥不匹配,设置和公钥匹配的私钥。
  • 文件本身并没有加密,请正常下载,不要使用解密下载。

ER图

用户增删改查文件的ER图,使用两个file表记录,一个file表记录用户那边的文件路径、文件名等信息,一个file表记录真实存储在服务端(云端)的路径、文件名、文件大小等信息。

快速上传功能通过md5取摘要可以实现,但修改文件时就需要创建相应的副本并更新表进行修改,否则会导致所有用户的文件都被修改。

使用步骤

1.登录

注册

注册未使用验证码,直接输入用户名、手机号、相同的密码即可注册然后到登录页面登录。

image-20250228013801223
登录

先注册,然后使用注册时的手机号和密码即可登录。

image-20250228013944180

2.侧边栏使用

侧边栏文件部分可以对已经上传的文件快速分类,例如密钥类会出现key、pub等后缀的文件,回收站为放入回收站的文件,可以恢复,分享为分享出去的文件。

image-20250228014143404

3.功能使用(重点,密钥生成、加密上传、文件格式转换)

上传、新建

蓝色区域顾名思义使用相关功能,上传文件(夹)、新建文件(夹)。

image-20250228014449354
加密上传、生成密钥对(暂只支持sm2加解密)

但需要注意的是,保密区域的加密上传功能,需要先上传公钥文件(或者选择生成密钥对生成公钥文件)后,右键选择文件设为公钥以加密,然后会使用该公钥作为密钥进行加密上传。

image-20250228014551019
格式转换(暂只支持pdf转图片,后续待修改前端布局,后端功能已实现)

右键选择想要转换格式的文件,例如pdf转图片就需要选择pdf后缀的文件,然后将其转换为图片。

image-20250228014941126

4.系统设计

系统设计背景

因为成本、技术或各种原因需要使用到第三方云存储,但不信任第三方云存储,故自建文件管理系统,对关键文件加密后上传以保证文件内容不会泄露。

系统功能
系统功能具体描述
文件管理文件目录管理、文件分类管理
文件(分片)(加密)上传分片上传大文件,加密上传文件
文件(解密)下载解密下载文件
生成密钥对生成sm2公私钥对,进行加解密、签名(更多加密方案待添加)
文件格式转换pdf转图片、文本、word等格式相互转换(更多格式转换待添加)
文件预览在线预览文件
文件在线编辑在线编辑文件
共享文件分享文件(不可共享编辑)
使用技术

系统使用VUE+Spring Boot+AliyunOss+gRPC构建前端、后端、云端、RPC服务端。

  • 前端可视化页面进行文件操作
  • 后端处理文件
  • 云端存储文件
  • RPC服务端运行消耗资源的服务(例如格式转换)

使用JPA用于快速生成、修改Mysql表结构,在发现设计缺陷后需要修改表结构时非常方便。

使用MyBatis-Plus进行查询、更新操作,便于进行一些比较小的表上的操作(主要用到主键)。

使用OnlyOffice支持文档在线预览、编辑服务。

使用gRPC实现RPC远程服务调用。

使用Elasticsearch对文件进行快速搜索。

使用阿里云存储进行云端存储。(支持分片上传。)

使用Docker构建服务。

使用Redis实现文件下载排行榜。