# wf-pan **Repository Path**: wfchat/wf-pan ## Basic Information - **Project Name**: wf-pan - **Description**: 野火网盘服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-11 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wf-pan 网盘服务 基于 Java + Vue3 + MySQL 的网盘服务,支持多空间管理和权限控制。 ## 项目结构 ``` wf-pan/ ├── DESIGN.md # 详细设计文档 ├── README.md # 项目说明 ├── wf-pan-server/ # 后端服务 (Java/Spring Boot) │ ├── src/ │ │ └── main/java/com/wildfirechat/pan/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── repository/ # 数据访问层 │ │ └── service/ # 业务逻辑层 │ ├── src/main/resources/ │ │ └── static/ # 前端静态资源(npm run build 自动生成) │ ├── pom.xml │ └── README.md ├── wf-pan-admin/ # 管理后台 (Vue3) │ ├── src/ │ ├── package.json │ └── vite.config.js ``` ## 快速开始 ### 1. 配置数据库 编辑 `wf-pan-server/src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/wf_pan?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: your_password ``` 创建数据库: ```sql CREATE DATABASE wf_pan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 2. 配置 IM 服务 ```yaml im: admin-url: http://localhost:18080 admin-secret: 123456 ``` ### 3. 配置对象存储(可选) 支持多厂商对象存储: ```properties # 媒体存储配置 # 1: 七牛云存储, 2: 阿里云对象存储, 3: 野火私有对象存储, 4: 对象存储网关 # 5: 腾讯云存储, 6: 华为云存储, 7: AWS S3, 8: 京东云存储 media.type=4 media.server_url=http://localhost:9000 media.access_key=minioadmin media.secret_key=minioadmin media.bucket=wf-pan ``` **厂商配置示例:** | 类型 | 配置示例 | |------|----------| | 0 - 未配置 | 不使用对象存储,文件仅保存URL | | 1 - 七牛云 | `media.server_url=http://your-domain.qiniudn.com` | | 2 - 阿里云 | `media.aliyun.endpoint=oss-cn-hangzhou.aliyuncs.com` | | 3 - 野火私有 | MinIO兼容,配置`media.server_url`即可 | | 4 - 对象存储网关 | MinIO兼容,配置`media.server_url`即可 | | 5 - 腾讯云 | `media.tencent.region=ap-guangzhou` | | 6 - 华为云 | `media.huawei.endpoint=obs.cn-north-4.myhuaweicloud.com` | | 7 - AWS S3 | `media.aws.region=us-east-1` | | 8 - 京东云 | `media.jdcloud.endpoint=s3.cn-north-1.jdcloud-oss.com` | ### 4. 构建项目 ```bash # 1. 构建前端(构建成功后自动复制到后端资源目录) cd wf-pan-admin npm install npm run build # 2. 构建并启动后端 cd ../wf-pan-server mvn clean package java -jar target/wf-pan-server-1.0.0.jar ``` ### 5. 访问服务 - 管理后台:http://localhost:8080/admin/ - 客户端 API:http://localhost:8081 默认管理员: - 账号:admin - 密码:admin123 ## 核心功能 ### 空间管理 - **GLOBAL_PUBLIC**: 全局公共空间,所有人可读,全局管理员可写 - **USER_PUBLIC**: 用户公共空间,所有人可读,用户自己可管理 - **USER_PRIVATE**: 用户私有空间,仅自己可访问 - **DEPT_PUBLIC/DEPT_PRIVATE**: 部门空间(预留) ### 权限控制 - 客户端使用 IM 的 authCode 认证 - 管理端使用 Session 认证 - 支持多个全局管理员 - 用户空间自动初始化 ### 文件管理 - 文件夹非空不能删除 - 删除文件时,检查是否还有其他文件引用相同存储URL,无引用时才删除OSS对象 - 支持文件跨空间复制(可配置是否复制物理文件) - 完整的配额统计 ## API 端口 | 端口 | 用途 | 认证方式 | 访问地址 | |------|------|---------|---------| | 8080 | 管理端口 | Cookie/Session | http://localhost:8080/ | | 8081 | 客户端端口 | Header authCode | http://localhost:8081/api/v1/ | **注意**:管理后台前端部署在根路径 `/`,不是 `/admin/` ## 技术栈 **后端** - Java 17 - Spring Boot 3.x - Spring Data JPA - MySQL 8.0 - Spring Security Crypto - MinIO Client (野火私有/网关) - 七牛云 SDK - 阿里云 OSS SDK - 腾讯云 COS SDK - 华为云 OBS SDK - AWS S3 SDK - 京东云 OSS SDK **前端** - Vue 3 - Element Plus - Pinia - Vue Router - Vite ## 数据初始化 应用启动时会自动: 1. 创建数据库表(`spring.jpa.hibernate.ddl-auto: update`) 2. 初始化系统配置(管理员账号密码) 3. 创建默认全局管理员(admin/admin123) 4. 创建全局公共空间 ## 开发模式 ```bash # 终端1:启动后端(开发模式) cd wf-pan-server mvn spring-boot:run # 终端2:启动前端开发服务器 cd wf-pan-admin npm run dev ``` 前端开发服务器:http://localhost:3000 后端 API:http://localhost:8080 / http://localhost:8081