# 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