0x00前言
这个项目做了很久,主要是模拟百度网盘实现文件在线存储、上传下载、分享以及管理,功能比百度网盘简陋,但该有的都有。
此处记录下来仅供往后查询。我并不打算公开源码,需要源码请按组合键:ALT+F4,或前往cloudreve下载thinkPHP的开源网盘系统。
0x01系统使用框架
1.数据库:mysql/oracle 11g,当使用11g时使用c3p0连接池。
2.后端框架:SpringMVC+Spring+MyBatis+java8
3.前端:bootstrap+jquery+jsp
4.web容器:tomcat9
4.其他:预览功能使用了openoffice4将office文件转为pdf,然后安装了Adobe acrobat实现在线预览
0x02系统功能
系统分为管理员与普通用户两种角色,管理员拥有普通用户所有的功能,同时具有管理权限,具体功能如下:
1、普通用户
1.注册
2.登录
3.退出
4.上传文件(同名文件自动重命名)
5.加密上传及存储(选择加密上传时,文件上传到服务器后采用AES加密后存储在服务器上)
6.单文件下载
7.文件批量下载
8.新建文件夹
9.删除文件夹
10.切换各级文件夹
11.预览
12.重命名文件
13.移动文件
14.删除文件
15.回收站(恢复、永久删除文件)
16.自定义头像
17.分享:生成分享链接,设置提取码及过期时间
18.点对点发送文件
19.最大容量、已用容量、剩余容量显示
20.发起扩容请求
21.文件分类展示
22.搜索
23.修改密码
2、管理员
24.管理员帐户注册(仅开放一次,注册结束即关闭)
25.切换用户模式与管理员模式
26.部署时注册管理员
27.对普通用户权限设置
28.封禁用户
29.删除用户
30.退出管理员模式
31.处理扩容请求
32.开启\关闭扩容请求自动处理功能
33.解禁用户
0x03部署前的准备工作
安装oracle11g
口令:Test12345678
安装PL/SQL
pl/sql安装完毕后下载64转32位的客户端
直接将oracle安装目录下的oci.dll复制过去
用户管理里SYS以DBA登录后创建用户cloud,口令Test12345678,指定默认表空间。
SYS as SYSDBA
create user cloud identified by "Test12345678";
grant create session to cloud 赋予登录权限
grant unlimited tablespace to cloud 赋予无限表空间
grant create table to cloud 赋予创建表权限
grant connect,resource to cloud 赋予创建会话的权限
解决中文乱码问题:
select userenv('language') from dual;
select * from V$NLS_PARAMETERS; 查看是否一致,如不一致则新建系统变量NLS_LANG使值与上一语句查出的一致,重启plsql
在线预览环境安装:
逻辑:
通过openOffice将office文件转成pdf
安装adobe
此处需对server.xml配置虚拟路径,重启服务器
程序版本:
OpenOffice4
流程:
1、安装OpenOffice4.exe
2、安装Adobe acrobat
3、配置虚拟路径
配置程序数据区
cloud文件夹下头像文件夹、预览文件夹需要配置虚拟路径
关于加密形式:
对于赋予了加密存储权限的用户,系统自动生成一个密钥,用户上传文件(文件夹暂不支持)时可勾选“加密存储”若勾选该选项,该份文件加密后存储
对于此类加密存储的文件的分享,各用户下载时自动搜索密钥表查找密钥后解密下载
Openoffice服务安装地址:
"C:\\Program Files (x86)\\OpenOffice 4\\"
如不安装在上述文件夹下,需修改
昨晚上述工作,再需要对tomcat进行配置虚拟路径。以便头像及预览的访问。
做完这些,安装前的准备工作就完成了。
0x04数据库设计
数据库分为6张表:
1.用户表
2.文件表
3.分享列表
4.扩容请求列表
5.消息通知表
6.预览记录表
0x05效果图
登录:
主界面:
管理员模式:
预览:
分享: