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

登錄:

主界面:

管理員模式:

預覽:

提取分享文件:

生成分享鏈接:

發起擴容請求:

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