This commit is contained in:
2026-07-18 10:53:23 +08:00
parent b5ef58f434
commit 70f8d2a35d
3 changed files with 146 additions and 0 deletions

82
TODO.md Normal file
View File

@@ -0,0 +1,82 @@
# 文件管理系统 - 待办事项
## 功能拓展
### 文件协作
- [ ] 文件评论/批注 — 支持对文件添加评论,多人协作讨论
- [ ] 文件版本管理 — 保留历史版本,支持回滚到指定版本
- [ ] 文件锁定 — 编辑时锁定文件,防止多人同时修改冲突
### 搜索增强
- [ ] 全文搜索 — 对文档内容建立索引PDF/Word/TXT支持内容搜索
- [ ] 高级筛选 — 按文件类型、大小范围、创建时间、所有者组合筛选
- [ ] 搜索历史 — 记录用户搜索关键词,支持快速重复搜索
### 通知与协作
- [ ] 文件变更通知 — 关注的文件夹有变更时推送通知
- [ ] 分享到期提醒 — 分享链接即将过期时通知分享者
- [ ] 操作审计增强 — 按用户/文件/时间段导出审计报表
### 存储增强
- [ ] 存储用量统计图表 — 按用户/文件类型/时间段统计存储使用趋势
- [ ] 文件去重 — 基于MD5自动去重相同文件只存一份
- [ ] 自动归档 — 超过指定时间未访问的文件自动迁移到冷存储
- [ ] 存储策略自动切换 — 根据文件大小/类型自动选择存储策略
### 安全增强
- [ ] 文件水印 — 预览/下载时自动添加用户信息水印
- [ ] 操作二次确认 — 删除/永久删除等危险操作需二次确认(可配置)
- [ ] 登录IP白名单 — 限制可登录的IP范围
- [ ] 文件加密存储 — 对敏感文件启用服务端加密
### 集成能力
- [ ] WebDAV 服务 — 支持通过 WebDAV 协议挂载为网络磁盘
- [ ] Office 在线编辑 — 集成 OnlyOffice/ Collabora 实现文档在线编辑
- [ ] OCR 识别 — 图片/PDF 自动识别文字,支持搜索
- [ ] 视频缩略图 — 上传视频自动生成封面缩略图
### 移动端
- [ ] H5 分享预览优化 — 分享链接在微信/钉钉内打开的适配
- [ ] 离线缓存 — PWA 支持,常用文件离线可用
- [ ] 扫码上传 — 手机扫码直接上传文件到指定目录
---
## 性能优化
### 后端
- [ ] 数据库查询优化 — 高频查询添加复合索引,减少全表扫描
- [ ] 连接池调优 — 根据实际并发量调整数据库连接池参数
- [ ] 缓存层 — 对用户权限、存储策略等热点数据加 Redis 缓存
- [ ] 异步队列 — 文件转码、通知发送等耗时操作改为消息队列异步处理
- [ ] API 限流 — 对上传/下载等接口做速率限制,防止滥用
### 前端
- [ ] 虚拟列表 — 文件数量大时使用虚拟滚动,提升渲染性能
- [ ] 图片懒加载 — 列表中的缩略图按需加载
- [ ] 接口缓存 — 对文件列表等频繁请求做前端缓存
- [ ] 打包优化 — 路由懒加载、代码分割,减小首屏体积
### 存储
- [ ] CDN 缓存策略 — 按文件类型设置不同的缓存过期时间
- [ ] 分片上传优化 — 支持并行上传分片,提升大文件上传速度
- [ ] 存储压缩 — 对文本类文件启用 GZIP 压缩存储
---
## 代码质量
- [ ] 单元测试 — 核心 service 层添加单元测试覆盖
- [ ] API 文档自动生成 — 集成 Swagger/OpenAPI 自动生成文档
- [ ] 错误码规范 — 统一错误码体系,前端根据错误码展示友好提示
- [ ] 日志规范 — 结构化日志输出,便于 ELK 等日志系统采集
- [ ] CI/CD — GitHub Actions 自动构建、测试、部署
---
## 部署运维
- [ ] Docker Compose — 一键部署全套环境Go + MySQL + MinIO + Nginx
- [ ] 健康检查增强 — 检查数据库/MinIO/磁盘空间等依赖服务状态
- [ ] 自动备份 — 定时备份数据库和文件,支持远程存储
- [ ] 灰度发布 — 支持新版本灰度发布,按用户比例切换

63
server/ctl.bat Normal file
View File

@@ -0,0 +1,63 @@
@echo off
chcp 65001 >nul
title 程序管理脚本
:: ================= 配置区 =================
:: 设置目标exe文件名
set "EXE_NAME=server.exe"
:: 设置exe完整路径 (如果exe和bat在同一目录可使用 %~dp0%EXE_NAME%)
set "EXE_PATH=%~dp0%EXE_NAME%"
:: =========================================
:menu
echo.
echo ================================
echo 程序管理菜单
echo ================================
echo 1. 启动程序
echo 2. 关闭程序
echo 3. 重启程序 (先关后开)
echo 4. 退出
echo ================================
set /p choice="请输入选项 (1-4): "
if "%choice%"=="1" goto start_prog
if "%choice%"=="2" goto stop_prog
if "%choice%"=="3" goto restart_prog
if "%choice%"=="4" exit
echo 无效选项,请重试
goto menu
:start_prog
echo [INFO] 正在检查程序是否已运行...
tasklist /fi "imagename eq %EXE_NAME%" | find /i "%EXE_NAME%" >nul
if %errorlevel% equ 0 (
echo [WARN] 程序 [%EXE_NAME%] 已经在运行中。
) else (
if exist "%EXE_PATH%" (
echo [INFO] 正在启动: %EXE_PATH%
start "" "%EXE_PATH%"
echo [SUCCESS] 程序已启动。
) else (
echo [ERROR] 未找到文件: %EXE_PATH%
)
)
pause
goto menu
:stop_prog
echo [INFO] 正在尝试关闭进程: %EXE_NAME% ...
taskkill /f /im "%EXE_NAME%" >nul 2>&1
if %errorlevel% equ 0 (
echo [SUCCESS] 进程已强制关闭。
) else (
echo [WARN] 未检测到运行中的进程或关闭失败。
)
pause
goto menu
:restart_prog
call :stop_prog
timeout /t 2 /nobreak >nul
call :start_prog
goto menu

1
server/license.json Normal file
View File

@@ -0,0 +1 @@
{"licenseStr":"1RGyDUub844lUuVBpGhxd0ZwX9Tg/B3uWSjT1T3+DoUqiwHUJWxHVD6cLWtFV/9C+YTfS6nA8/578u48ujYWqocM2nbSRQGmzGPgn3Q4B9sgS2G7t0ZBOwJfqkiABL/YimnPSh0Q75Xd8g3+IDYYJyVL+icr/CXfI5yZXnGpRul/17MtMGHulQ8LhKy96/XkUz95fG/uGjgz1jiYeFZmrdXe+yRx5IWmJ+7OsbKFiwxTFeoS/HaZyMidmOGmU74HcG2tt4ocGPiklGCXLDYJeP4nsQpl7BKI1Oi8Z9zT5IOVvRhHZw4zuhFlat96WCxYGdVFsYr3f46qPsPzWzS1mRzTXvFXuF1RAsvXlcpAXxQJHnUBmItl1FEmEPOnxNqyw6Or01EmLuxOz2BYSC4arq2OHw==","productType":"seeyon-filesystem","version":"1.0"}