Skip to content

Commit 165a499

Browse files
authored
Merge pull request #22 from zy84338719/v2-refactor
feat: v2 refactor - migrate to Hertz backend and Vue 3 frontend
2 parents d953d19 + 87d14f5 commit 165a499

429 files changed

Lines changed: 41754 additions & 25125 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,13 @@ jobs:
2525
with:
2626
go-version: ${{ matrix.go-version }}
2727
cache: true
28-
cache-dependency-path: |
29-
go.sum
30-
go.mod
28+
cache-dependency-path: backend/go.sum
3129

3230
- name: Download dependencies
3331
run: make deps
3432

3533
- name: Verify dependencies
34+
working-directory: backend
3635
run: go mod verify
3736

3837
- name: Run checks
@@ -45,7 +44,7 @@ jobs:
4544
if: matrix.go-version == '1.25'
4645
uses: codecov/codecov-action@v4
4746
with:
48-
file: ./coverage.out
47+
file: ./backend/coverage.out
4948
flags: unittests
5049
name: codecov-umbrella
5150
fail_ci_if_error: false
@@ -55,9 +54,12 @@ jobs:
5554

5655
- name: Run integration tests
5756
run: |
57+
# 创建必要的目录
58+
mkdir -p backend/data/uploads
59+
5860
# 构建并启动服务
5961
make build
60-
./filecodebox &
62+
cd backend && ./bin/server &
6163
SERVER_PID=$!
6264
6365
# 等待服务启动
@@ -93,11 +95,13 @@ jobs:
9395
with:
9496
go-version: '1.25'
9597
cache: true
98+
cache-dependency-path: backend/go.sum
9699

97100
- name: golangci-lint
98-
uses: golangci/golangci-lint-action@v6
101+
uses: golangci/golangci-lint-action@v7
99102
with:
100-
version: latest
103+
version: v2.11.3
104+
working-directory: backend
101105
args: --timeout=5m
102106

103107
docker-test:
@@ -173,6 +177,8 @@ jobs:
173177
uses: actions/setup-go@v5
174178
with:
175179
go-version: '1.25'
180+
cache: true
181+
cache-dependency-path: backend/go.sum
176182

177183
- name: Run Basic Security Checks
178184
run: |

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ jobs:
129129
#### 方式四:源码编译
130130
131131
\`\`\`bash
132-
git clone https://github.com/zy84338719/filecodebox.git
132+
git clone https://github.com/zy84338719/fileCodeBox/backend.git
133133
cd filecodebox
134134
git checkout $CURRENT_TAG
135135
make build

API-COMPARISON.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# API 完整性对比报告
2+
3+
## 对比日期: 2026-03-11
4+
5+
---
6+
7+
## 新项目已实现的 API
8+
9+
### ✅ 用户模块
10+
| API | 老项目 | 新项目 | 状态 |
11+
|-----|--------|--------|------|
12+
| POST /user/register ||| 完整 |
13+
| POST /user/login ||| 完整 |
14+
| GET /user/info ||| 完整 |
15+
| PUT /user/profile ||| 完整 |
16+
| POST /user/change-password ||| 完整 |
17+
| GET /user/stats ||| 完整 |
18+
| GET /user/files ||| 完整 |
19+
| DELETE /user/files/:code || ⚠️ | 需验证 |
20+
| GET /user/api-keys ||| 完整 |
21+
| POST /user/api-keys ||| 完整 |
22+
| DELETE /user/api-keys/:id ||| 完整 |
23+
| POST /user/logout ||| 缺失 |
24+
| GET /user/check-auth ||| 缺失 |
25+
26+
### ✅ 管理员模块
27+
| API | 老项目 | 新项目 | 状态 |
28+
|-----|--------|--------|------|
29+
| POST /admin/login ||| 完整 |
30+
| GET /admin/stats ||| 完整 |
31+
| GET /admin/dashboard || ⚠️ | 复用 stats |
32+
| GET /admin/files ||| 完整 |
33+
| DELETE /admin/files/:id ||| 完整 |
34+
| PUT /admin/files/:id ||| 缺失 |
35+
| GET /admin/files/:id ||| 缺失 |
36+
| GET /admin/files/download ||| 缺失 |
37+
| GET /admin/users ||| 完整 |
38+
| GET /admin/users/:id ||| 缺失 |
39+
| POST /admin/users ||| 缺失 |
40+
| PUT /admin/users/:id ||| 缺失 |
41+
| DELETE /admin/users/:id ||| 缺失 |
42+
| PUT /admin/users/:id/status ||| 完整 |
43+
| POST /admin/users/batch-* ||| 缺失 |
44+
| GET /admin/config ||| 完整 |
45+
| PUT /admin/config ||| 完整 |
46+
47+
### ✅ 存储模块
48+
| API | 老项目 | 新项目 | 状态 |
49+
|-----|--------|--------|------|
50+
| GET /admin/storage ||| 完整 |
51+
| POST /admin/storage/switch ||| 完整 |
52+
| GET /admin/storage/test/:type ||| 完整 |
53+
| PUT /admin/storage/config ||| 完整 |
54+
55+
### ✅ 维护模块
56+
| API | 老项目 | 新项目 | 状态 |
57+
|-----|--------|--------|------|
58+
| POST /admin/maintenance/clean-expired ||| 完整 |
59+
| POST /admin/maintenance/clean-temp ||| 完整 |
60+
| GET /admin/maintenance/system-info ||| 完整 |
61+
| GET /admin/maintenance/monitor/storage ||| 完整 |
62+
| GET /admin/maintenance/logs ||| 完整 |
63+
| POST /admin/maintenance/db/backup ||| 缺失 |
64+
| POST /admin/maintenance/db/optimize ||| 缺失 |
65+
| POST /admin/maintenance/cache/clear-* ||| 缺失 |
66+
| POST /admin/maintenance/security/scan ||| 缺失 |
67+
68+
### ✅ 分享模块
69+
| API | 老项目 | 新项目 | 状态 |
70+
|-----|--------|--------|------|
71+
| POST /share/text/ ||| 完整 |
72+
| POST /share/file/ ||| 完整 |
73+
| GET /share/select/ ||| 完整 |
74+
| POST /share/select/ ||| 完整 |
75+
| GET /share/download ||| 完整 |
76+
77+
### ✅ 分片上传模块
78+
| API | 老项目 | 新项目 | 状态 |
79+
|-----|--------|--------|------|
80+
| POST /chunk/upload/init ||| 完整 |
81+
| POST /chunk/upload/chunk ||| 完整 |
82+
| POST /chunk/upload/complete ||| 完整 |
83+
| GET /chunk/upload/status ||| 完整 |
84+
| DELETE /chunk/upload/cancel ||| 完整 |
85+
86+
### ✅ 其他模块
87+
| API | 老项目 | 新项目 | 状态 |
88+
|-----|--------|--------|------|
89+
| GET /health ||| 完整 |
90+
| GET /setup/check ||| 完整 |
91+
| POST /setup ||| 完整 |
92+
| POST /qrcode/generate ||| 完整 |
93+
| GET /qrcode/:id ||| 完整 |
94+
95+
---
96+
97+
## 缺失的高优先级 API
98+
99+
### P0 - 核心功能 (影响基本使用)
100+
-**POST /user/logout** - 用户登出
101+
-**GET /user/check-auth** - 检查认证状态
102+
103+
### P1 - 管理功能 (影响后台管理)
104+
-**GET/POST/PUT/DELETE /admin/users/:id** - 用户 CRUD
105+
-**PUT /admin/files/:id** - 文件更新
106+
-**GET /admin/logs/transfer** - 传输日志
107+
108+
### P2 - 高级功能 (可后续补充)
109+
-**MCP 协议支持** - AI 集成
110+
-**批量操作 API** - batch-delete/enable/disable
111+
-**数据库维护** - backup/optimize
112+
-**安全扫描** - security/scan
113+
114+
---
115+
116+
## 前端 API 对接状态
117+
118+
### 已匹配
119+
- ✅ /user/login, /user/register
120+
- ✅ /admin/login, /admin/stats
121+
- ✅ /share/text/, /share/file/, /share/select/
122+
- ✅ /admin/storage, /admin/maintenance/*
123+
124+
### 需前端调整
125+
- ⚠️ /user/profile → /user/info
126+
- ⚠️ /user/files → /share/user
127+
- ⚠️ /user/files/:code → /share/:code
128+
129+
---
130+
131+
## 建议优先补充
132+
133+
1. **POST /user/logout** - 简单,影响用户体验
134+
2. **GET /user/check-auth** - 简单,前端需要
135+
3. **GET /admin/logs/transfer** - 管理后台需要
136+
4. **用户 CRUD** - 管理后台核心功能
137+
138+
---
139+
140+
## 总体评估
141+
142+
| 类别 | 完成度 |
143+
|------|--------|
144+
| 核心功能 | 95% |
145+
| 管理功能 | 80% |
146+
| 维护功能 | 70% |
147+
| 高级功能 | 40% |
148+
| **总体** | **85%** |
149+
150+
**结论**: 核心功能基本完整,可进入测试阶段。缺失功能可在后续迭代补充。

Dockerfile

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,59 @@
1-
# 多阶段构建:第一阶段用于编译
2-
FROM golang:1.24-alpine AS builder
1+
# 多阶段构建 FileCodeBox v2
2+
# Stage 1: 构建前端
3+
FROM node:20-alpine AS frontend-builder
4+
5+
WORKDIR /frontend
6+
7+
# 复制前端依赖文件
8+
COPY frontend/package*.json ./
9+
10+
# 安装依赖
11+
RUN npm ci
12+
13+
# 复制前端源代码
14+
COPY frontend/ ./
15+
16+
# 构建前端
17+
RUN npm run build
18+
19+
# Stage 2: 构建后端
20+
FROM golang:1.25-alpine AS backend-builder
321

422
# 安装构建依赖
523
RUN apk add --no-cache \
624
gcc \
725
musl-dev \
826
sqlite-dev \
927
git \
10-
ca-certificates
28+
ca-certificates \
29+
tzdata
1130

1231
WORKDIR /app
1332

14-
# 复制依赖文件并下载依赖
15-
COPY go.mod go.sum ./
33+
# 复制后端依赖文件
34+
COPY backend/go.mod backend/go.sum ./
35+
36+
# 下载依赖
1637
RUN go mod download
1738

18-
# 复制源代码
19-
COPY . .
39+
# 复制后端源代码
40+
COPY backend/ ./
41+
42+
# 构建参数
43+
ARG VERSION=dev
44+
ARG COMMIT=unknown
45+
ARG BUILD_TIME=unknown
2046

21-
# 编译应用程序
22-
RUN CGO_ENABLED=1 go build -ldflags="-w -s" -o filecodebox .
47+
# 编译后端
48+
RUN CGO_ENABLED=1 go build \
49+
-ldflags="-w -s \
50+
-X 'github.com/zy84338719/fileCodeBox/backend/internal/models/service.Version=${VERSION}' \
51+
-X 'github.com/zy84338719/fileCodeBox/backend/internal/models/service.GitCommit=${COMMIT}' \
52+
-X 'github.com/zy84338719/fileCodeBox/backend/internal/models/service.BuildTime=${BUILD_TIME}'" \
53+
-o bin/server ./cmd/server
2354

24-
# 第二阶段:运行时镜像
25-
FROM alpine:latest
55+
# Stage 3: 运行时镜像
56+
FROM alpine:3.19
2657

2758
# 安装运行时依赖
2859
RUN apk --no-cache add \
@@ -36,16 +67,24 @@ RUN addgroup -g 1000 app && \
3667

3768
WORKDIR /app
3869

39-
# 从构建阶段复制文件
40-
COPY --from=builder /app/filecodebox .
41-
COPY --from=builder /app/themes ./themes
70+
# 从后端构建阶段复制二进制文件
71+
COPY --from=backend-builder /app/bin/server ./
72+
73+
# 从前端构建阶段复制静态文件
74+
COPY --from=frontend-builder /frontend/dist ./static/
4275

4376
# 创建数据目录并设置权限
44-
RUN mkdir -p data && chown -R app:app /app
77+
RUN mkdir -p data configs && chown -R app:app /app
4578

4679
# 切换到非root用户
4780
USER app
4881

82+
# 暴露端口
4983
EXPOSE 12345
5084

51-
CMD ["./filecodebox"]
85+
# 健康检查
86+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
87+
CMD wget --no-verbose --tries=1 --spider http://localhost:12345/health || exit 1
88+
89+
# 启动服务
90+
CMD ["./server"]

0 commit comments

Comments
 (0)