翁省輝,黃丹萍,廖天驕,郭喜鴻,丘淼帆
(北京理工大學珠海學院,廣東珠海519085)
基于移動存儲設備的云端自動備份系統(tǒng)設計
翁省輝,黃丹萍,廖天驕,郭喜鴻,丘淼帆
(北京理工大學珠海學院,廣東珠海519085)
為減少移動存儲設備丟失帶來的不利影響及突破物理存儲空間的限制,利用QT框架以及FTP文件傳輸協(xié)議,設計出一種能自動備份文件、便于用戶使用的移動設備云端自動備份系統(tǒng)。該備份系統(tǒng)實現了移動存儲設備文件自動上傳,從云端下載文件,顯示文件上傳后文件列表,一鍵還原移動存儲設備的空間等功能,基本實現移動存儲設備與云端的同步。目前云盤軟件雖然很多但并沒有專門針對U盤的,所以本系統(tǒng)具有一定的創(chuàng)新性。實際應用表明,該系統(tǒng)具有操作簡單等特點,具有良好的市場前景。
移動存儲設備;QT;FTP;自動備份
隨著社會的發(fā)展和信息技術的進步,全球信息化的趨勢越來越明顯,大量的信息需要存儲,需要共享?;谠贫说拇鎯Ψ绞剑丛票P)就在這種情況下變的越來越受歡迎。目前廣大的群眾用還是U盤(一種移動存儲設備)這種傳統(tǒng)的存儲方式。一方面,U盤往往攜帶有重要資料,丟失會帶來很多困擾;另一方面,U盤有物理存儲空間限制,當所存資料大小大于U盤時,一個U盤往往不夠用,基于移動存儲設備的云端自動備份系統(tǒng)能夠有效解決這些問題[1],它具有自動備份的功能,自動將U盤里的文件上傳至云端,另外支持一鍵還原移動存儲設備的空間,可以將已備份的數據刪除,騰出U盤空間。
云端自動備份系統(tǒng)主要由U盤,網盤2個模塊組成??傮w框架圖如圖1所示。
該系統(tǒng)的U盤功能主要是利用U盤的插入識別,獲取移動存儲設備的詳細信息,當文件備份成功時可以選擇使用一鍵還原功能刪除所有的文件以騰出U盤空間。網盤功能是首先用戶輸入用戶名密碼登錄網盤,成功登錄后實現自動上傳移動存儲設備里的文件,并通過監(jiān)視函數監(jiān)視移動存儲設備的文件變化來決定是否修改網盤的數據,用戶亦可根據自己的需要下載備份網盤的文件。
圖1 系統(tǒng)總體框架圖
2.1插入識別
該模塊主要是檢測U盤的插入與拔出,若檢測到有U盤插入,在Windows桌面會顯示U盤信息的UI界面;若檢測到U盤已拔出,顯示U盤已拔出的UI界面。
2.2信息讀取
該模塊主要是獲取U盤的詳細信息,例如:U盤的總空間、可用空間、盤符、路徑。在系統(tǒng)檢測到有U盤插入時,利用函數FirstDriveFromMask()獲取U盤的盤符和路徑,用函數GetVo1umeInformationA()得到U盤的名字,再用函數GetDiskFreeSpaceEx()獲得U盤的總空間和剩余空間。
2.3一鍵還原
該模塊主要是在用戶備份完成U盤數據后,給用戶提供一個清空U盤數據的功能,使U盤的空間可以反復使用,突破U盤物理空間的限制。下面為一鍵還原U盤的關鍵代碼:QDir dir(path)j dir.removeRecursive1y()j其中,path為U盤的路徑。
2.4用戶登錄
使用FTP傳輸文件時,本機需先與FTP服務器建立連接[3_4],然后向服務器發(fā)出傳輸命令,服務器在收到命令后就給予響應,并執(zhí)行正確的命令。但是當FTP沒有開啟匿名登錄的權限時,如果用戶在某個主機上沒有注冊獲得授權,即沒有用戶名和密碼,就不能與該主機進行文件傳輸。因此,在設計該模塊的時候,本著為用戶著想的原則,為用戶自動分配一個賬戶和密碼,用戶可自己修改賬戶和密碼。
利用text()函數分別獲取賬號、密碼輸入框中的數據,用connectToHost()和1ogin()登錄到網盤。以下是實現用戶登錄的關鍵代碼:
ftp_>connectToHost(ftpServer,21)j
ftp_>1ogin(userName,passWord)j
2.5文件上傳
文件傳輸協(xié)議(Fi1e Transfer?Protoco1,?FTP)是一個可以用于跨平臺(在兩臺裝有不同操作系統(tǒng)的機器上)傳輸計算機文件的軟件標準。它屬于網絡協(xié)議組的應用層。主要用于上傳和下載文件。跟其他傳輸協(xié)議相比,用FTP協(xié)議上傳文件大于1M的文件速度快;文件越大;上傳的速度倍數越大,非常適合U盤的文件上傳,因此該系統(tǒng)選用FTP協(xié)議來進行文件的傳輸,上傳到服務器進行保存。
為了滿足不同用戶的需求,該模塊設計成兩部分,分別是自動上傳備份和手動上傳備份。自動上傳備份是當用戶登錄網盤成功后,自動調用遍歷函數,遍歷U盤內的所有文件后,上傳U盤內的所有文件。手動上傳備份是不上傳U盤內的所有文件,用戶根據自己的需要,選擇上傳自己需要備份的文件。
下面的代碼是自動上傳備份代碼中的核心部分:實現的功能有上傳文件,計算上傳文件總大?。?]。因為dir_iterator是迭代器,可根據dir_iterator.hasNext()確定是否有下一個元素可以迭代,再用dir_iterator.next()迭代到下一個元素。
2.6文件下載
依靠FTP協(xié)議的支持,用戶下載的文件沒有類型和大小限制,即用戶可已選擇任何自己想要下載的文件。當用戶所需的文件損壞或丟失的時候,并且備份在網盤的時候,就可以登錄網盤下載自己需要的文件。
用戶成功登錄網盤后,獲取服務器目錄下的文件列表,當用戶選擇項目為文件時,點擊下載可以下載用戶所需要的文件。選定文件后提示用戶將文件存儲在何處,用戶選擇存儲區(qū)后開始下載任務。
使用getSaveFi1eName()函數獲得文件名,利用get()函數下載并保存至用戶指定的路徑。當用戶下載失敗時,出錯處理會在信息顯示面板中顯示下載出錯,當用戶選擇項目為文件夾時,提示用戶不能下載。以下是文件下載的關鍵代碼:
QString f=QFi1eDia1og:getSaveFi1eName(0,tr(″SaveAs″),temp)j
ftp_>get(fi1eName,fi1e)j
2.7監(jiān)視U盤
監(jiān)視U盤是為了方便用戶的使用,讓用戶在不用自己動手的情況下,實時的更新網盤的備份信息[6_7]。若U盤里有文件被刪除或修改,網盤就會第一時間做出反應,更新網盤的相關備份信息。
QT提供了QFi1eSystemWatcher類來監(jiān)視文件和目錄的改變。通過遍歷函數,獲取U盤里的文件的路徑,并用函數addPaths()監(jiān)視U盤里的每個文件。當檢測到U盤里的文件被修改或刪除,系統(tǒng)調用函數directoryChange()更新網盤里的備份信息。
2.8文件顯示
文件顯示模塊主要是將網盤上的文件列表顯示出來,能更方便用戶直接了解U盤的備份信息,實現實時更新。為了使該軟件更具實用性,該系統(tǒng)還加入了文件與文件夾的圖標,以便更好的區(qū)分兩者。
該界面的作用是是顯示服務器文件列表,利用控件QTreeWidgetItem來實現。在網盤主界面創(chuàng)建一個QTreeWidgetItem,命名為fi1eList,并置于主界面中間,該控件包括3個項目:文件名fi1ename,文件大小fi1esizes,修改日期fi1edates,使用類QUr1Info中的函數直接獲得這3個項目的值。當用戶成功登錄網盤時,這3個項目的數據自動更新,主要功能使用addToList()函數實現。
item_>setText(0,QString:fromLoca18Bit(ur1Info.name(). toLatin1())j
item_>setText(1,QString:number(ur1Info.size())j
item_>setText(2,ur1Info.1astModified().toString(″yyyy/M/dd hh:mm″)j
當登錄網盤時,首先清除文件列表信息,利用c1ear()函數實現。
以下是該系統(tǒng)用于某U盤的信息顯示和云端自動備份的測試。在進行測試時,首先運行該應用軟件系統(tǒng),運行后會在系統(tǒng)托盤化區(qū)顯示“沖上云端”的托盤化圖標。插入U盤后,系統(tǒng)檢測到U盤后,會顯示如圖2所示的界面。
圖2 U盤信息顯示界面
該界面顯示了該U盤的總空間、可用空間、以及U盤空間的使用率。通過點擊“網盤”按鈕,通過賬號和密碼成功登錄網盤后,自動備份所有文件,同時進入網盤的主界面,如圖3所示。
圖3 網盤測試主界面
它顯示文件的名稱和最新修改日期。點擊“上傳”按鈕,選擇U盤內的一個文件上傳至網盤,上傳后文件將在界面中顯示。如果上傳不成功,將提示上傳失敗的原因。再點擊“下載”按鈕,選擇網盤上的一個文件下載到本機上的任意路徑上,如果下載失敗,會提示下載失敗的原因。通過實際應用發(fā)現,該系統(tǒng)測試方便快速、穩(wěn)定可靠。
本系統(tǒng)利用FTP協(xié)議自行搭建云存儲服務器,實現了移動存儲設備文件的自動備份,同時還實現了一鍵還原、云盤文件下載等,可以突破物理存儲空間的限制并能有效減少移動存儲設備丟失帶來的數據損失,是對普通U盤實現云存儲的一個嘗試。實際應用效果良好,有較好的應用前景。
[1]湯一松.利用FTP搭建安全便捷的數據文件自動備份系統(tǒng)[J].中國統(tǒng)計,2010(6):35_36.
[2]廖洪其,凌捷,郝彥軍,等.USB移動存儲設備的惟一性識別方法研究[J].計算機工程與設計,2010,31(12):2778_2780.
[3]羅彩君.基于Linux系統(tǒng)的FTP服務器的實現[J].電子設計工程,2013,21(11):40_42.
[4]李發(fā)海.高校實驗教學用FTP服務器的構建[J].信息技術,2011 (8):55_57.
[5]霍亞飛.Qt Creator快速入門[M].2版.北京:北京航空航天大學出版社,2014.
[6]陸添超.本地文件監(jiān)控系統(tǒng)[J].電腦編程技巧與維護,2010 (14):136_137.
[7]周相兵,馬洪江,苗放.種基于云計算的旅游云構架模式研究[J].重慶師范大學學報:自然科學版,2013(2):79_86.
[相關參考文獻鏈接]
可曉海,古麗江·庫爾班,常莉麗,等.基于掉電數據存儲的耐壓絕緣測試系統(tǒng)設計[J].2014,22(3):124_128.
周瑩,于金花,牛志華,等.基于FPGA的水聲信號采集與存儲系統(tǒng)設計[J].2014,22(13):184_186
王淑娟.SaaS模式下多租戶數據比較存儲模式研究[J]. 2014,22(18):11_13.
徐俊,湯庸,趙云龍.冠字號云存儲管理系統(tǒng)設計[J]. 2014,22(19):35_37
石常興,周浩.一種基于EVC的數據存儲管理算法實現[J]. 2014,22(20):187_189
蘇秀紅,李春枝,申川.基于Nand F1ash的高速存儲器結構設計[J].2014,22(23):4_7.
賀建英,唐青松.Ajax技術與路徑存儲法在樹形結構中的整合研究[J].2015,23(3):8_10.
李姍,宋琪,朱巖,等.基于抗輻照龍芯的雙接口大容量存儲系統(tǒng)設計[J].2015,23(3):116_118.
Deslgn of cloud automatlc backuP system based on moblle storage deVlce
WENG Sheng_hui,HUANG Dan_ping,LIAO Tian_jiao,GUO Xi_hong,QIU Miao_fan
(School of Beijing Institute of Technology(Zhuhai),Zhuhai 519085,China)
To reduce the adverse impact of the 1oss of mobi1e storage device and break the restriction of physica1 storage space,this paper designs a automatic backup system for mobi1e devices,which can automatica11y backup fi1es and faci1itate the user to use by using the QT framework and FTP.The backup system has the fo11owing functions:automatic up1oad of mobi1e storage device fi1es,down1oad fi1e from the c1oud,show the up1oad fi1e 1ist,restore the space of mobi1e storage devices and other.It basica11y synchronized mobi1e storage devices and c1oud synchronization.A1though there are many c1oud disk software,but no specific for the U disk,so this system has some innovative.The practica1 app1ication shows that the system has the advantages of simp1e operation,and it wi11 have a good market.
mobi1e storage devicejQTj FTPjautomatic backup
TN919.5
A
1674_6236(2016)10_0077_03
2015_06_16稿件編號:201506166
2014年校級大學生創(chuàng)新訓練計劃項目(48)
翁省輝(1984—),男,江西撫州人,碩士,講師。研究方向:嵌入式系統(tǒng)設計。