SSM实现Java版百度网盘系统

0x00前言

这个项目做了很久,主要是模拟百度网盘实现文件在线存储、上传下载、分享以及管理,界面比百度网盘简陋,只有B/S模式,也没有PC客户端和安卓客户端,另外百度网盘的存储服务器其实是分布式的文件系统,限于我的能力和机器资源有限,此项目做成单服务器系统,没有使用任何分布式技术。但该有的基本功能如上传、重命名、删除、移动、下载、分享、预览、文件夹新建等等都有。

此处记录下来仅供往后查询。我并不打算公开源码,需要源码请按组合键:ALT+F4,或前往这里:cloudreve下载thinkPHP的开源网盘系统。

0x01系统使用框架

1.数据库:mysql/oracle 11g,当使用11g时使用c3p0连接池。

2.后端框架:SpringMVC+Spring+MyBatis+java8

3.前端:bootstrap+jquery+jsp,部分功能使用了ajax

4.web容器:tomcat9

5.其他:预览功能使用了openoffice4将office文件转为pdf,然后安装了Adobe acrobat实现在线预览

6.文件加密模块:使用AES算法,密钥长度为128位,加密模式为CBC,填充方式为PKCS5Padding,向上层提供文件加解密及字符串加解密服务。该模块对于输入的字符串密钥,首先计算密钥的128位摘要作为AES的初始种子密钥,使用该比特密钥对文件及字符串进行加解密,该模式与网络上常见上的加解密工具不通用。

7.密码存储:使用SHA-1计算密码摘要存储

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效果图

登录:

主界面:

管理员模式:

预览:

提取分享文件:

生成分享链接:

发起扩容请求:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章