# CEA Net Disk
**Repository Path**: NetDiskThreePersons/cea-net-disk
## Basic Information
- **Project Name**: CEA Net Disk
- **Description**: 一个基于Java的网盘项目。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2024-07-06
- **Last Updated**: 2025-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 云瀚典藏(Cloud Expanse Archive Net Disk)
#### 项目介绍
云瀚典藏是一个网盘的全栈实现,前端采用原生HTML+JavaScript+CSS,后端采用JAVA+MySQL,IDE使用IDEA,包管理工具采用Maven。
网盘核心功能(点击展开/收起)
- 用户注册、登录与注销
- 用户信息的修改
- 文件的上传、下载、复制、移动、重命名和删除
- 新建文件夹与文件夹的复制、移动、重命名和删除
- 基本的文件访问权限控制
网盘扩展功能(点击展开/收起)
- [x] 对**Unicode**的完全支持
- [x] 基于Cravatar的头像管理服务
- [x] 基于邮件验证码的邮箱校验
- [x] 基于数据库的文件管理
- [x] 基于存储过程的数据一致性保证
- [x] 文件的加密存储
- [x] 回收站功能
- [x] 文件与文件夹的搜索
- [ ] 文件的分享
#### 软件架构
本项目采用前后端分离的实现方式。前端采用原生HTML+JavaScript+CSS,主要由首页、网盘等页面构成;后端采用JAVA+MySQL,架构上可分为**DAO层**、**service层**与**servlet层**。
项目结构(点击展开/收起)
```
CEA Net Disk
│ .gitignore
│ LICENSE
│ netDisk.iml
│ pom.xml
│ qodana.yaml
│
├─src
│ ├─com
│ │ └─cea
│ │ ├─dao
│ │ │ FileDAO.java
│ │ │ FolderDAO.java
│ │ │ OsDAO.java
│ │ │ UserDAO.java
│ │ │
│ │ ├─entity
│ │ │ ├─json
│ │ │ │ BaseJson.java
│ │ │ │ FileJson.java
│ │ │ │ FolderJson.java
│ │ │ │ NetDiskJson.java
│ │ │ │ UserJson.java
│ │ │ │
│ │ │ └─netdisk
│ │ │ FileORM.java
│ │ │ FolderORM.java
│ │ │ NetDiskORM.java
│ │ │ UserORM.java
│ │ │
│ │ ├─exception
│ │ │ FileExistedException.java
│ │ │ FileNotFoundException.java
│ │ │ FileUploadFailedException.java
│ │ │ FolderExistedException.java
│ │ │ FolderExistException.java
│ │ │ FolderNotFoundException.java
│ │ │ InvalidFileNameException.java
│ │ │ InvalidFolderNameException.java
│ │ │ InvalidOperationException.java
│ │ │ InvalidUsrOrEmailException.java
│ │ │ LoginException.java
│ │ │ NetDiskException.java
│ │ │ NetDiskFileException.java
│ │ │ NetDiskFolderException.java
│ │ │ NoSuchUserException.java
│ │ │ OsException.java
│ │ │ RawFileExistedException.java
│ │ │ RawFileNotFoundException.java
│ │ │ RegisterException.java
│ │ │ UserException.java
│ │ │ UserExistedException.java
│ │ │ WrongPasswordException.java
│ │ │
│ │ ├─filter
│ │ │ EncodingFilter.java
│ │ │ IllegalGetRequestFilter.java
│ │ │ IllegalPostRequestFilter.java
│ │ │ ImageCaptchaFilter.java
│ │ │ JsonSettingFilter.java
│ │ │ LoginFilter.java
│ │ │ LogoutFilter.java
│ │ │ LogoutHtmlFilter.java
│ │ │ MailCaptchaFilter.java
│ │ │
│ │ ├─service
│ │ ├─servlet
│ │ │ ├─captcha
│ │ │ │ ImageCaptchaServlet.java
│ │ │ │ MailCaptchaServlet.java
│ │ │ │
│ │ │ ├─netdisk
│ │ │ │ CopyServlet.java
│ │ │ │ CreateFolderServlet.java
│ │ │ │ DeleteServlet.java
│ │ │ │ DownloadFileServlet.java
│ │ │ │ ListFolderServlet.java
│ │ │ │ MoveServlet.java
│ │ │ │ RenameServlet.java
│ │ │ │ UploadFileServlet.java
│ │ │ │
│ │ │ └─user
│ │ │ LoginEmailServlet.java
│ │ │ LoginPasswordServlet.java
│ │ │ LogoutServlet.java
│ │ │ RegisterServlet.java
│ │ │ ResetPasswordServlet.java
│ │ │ UserDeleteServlet.java
│ │ │ UserDetailServlet.java
│ │ │ UserUpdatePublicServlet.java
│ │ │ UserUpdateSecretServlet.java
│ │ │
│ │ └─utils
│ │ │ ParamChecker.java
│ │ │
│ │ ├─captcha
│ │ │ ImageCaptcha.java
│ │ │ MailCaptcha.java
│ │ │
│ │ ├─config
│ │ │ DBConfig.java
│ │ │ MailConfig.java
│ │ │ SysConfig.java
│ │ │
│ │ ├─database
│ │ │ BaseDatabase.java
│ │ │ DsUtil.java
│ │ │
│ │ ├─encryptor
│ │ │ PasswordEncryptor.java
│ │ │
│ │ ├─sqlerr
│ │ │ AnaErrCode.java
│ │ │ BaseSqlException.java
│ │ │ ConstraintException.java
│ │ │ DataToLongException.java
│ │ │ UniqueException.java
│ │ │
│ │ ├─sqltools
│ │ │ BindValues.java
│ │ │
│ │ └─usertools
│ │ UserManager.java
│ │
│ └─main
│ └─resources
│ database.properties.sample
│ mail.properties.sample
│ sysConf.properties.sample
│
└─web
│ change_email.html
│ change_pwd.html
│ cloud3.jpg
│ crypto-js.js
│ find_pwd.html
│ form-serialize.js
│ index.css
│ index.html
│ index.js
│ index_change.js
│ juan_zhou.png
│ success.css
│ success.html
│ success.js
│ success_change.js
│ wp.png
│
├─META-INF
│ context.xml
│
└─WEB-INF
web.xml
```
#### 食用教程
1. 克隆本项目到本地文件夹`git clone git@gitee.com:NetDiskThreePersons/cet-net-disk.git`
2. 使用IDEA打开本项目
3. 在IDEA中配置web模块与源代码目录
4. 参照`*.properties.sample`,根据实际情况创建并修改对应的`*.properties`文件
4. 配置tomcat服务器,然后就可以愉快地玩耍啦
#### 项目说明
1. 本项目为电子科技大学2023年新生课外项目“网盘攻防战”的开源实现,代码未经过充分测试,不建议直接部署到生产环境使用;
2. 本项目前端代码由 @cszdf 完成,后端代码及测试由 @YinChenming @XieTao 完成,同时感谢电子科技大学计算机科学与工程学院(网络空间安全学院)的李忻洋老师对本项目的支持与帮助;
3. ~~您可以通过访问`https://ceanetdisk.us.kg/netdisk/`在线访问本项目,~~ 在使用过程中遇到的任何问题都可以 ~~发送邮件到`support@ceanetdisk.us.kg`或者~~ 在issue中提出,同时我们也非常欢迎您可以积极地为本项目做出贡献。
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request