本發(fā)明涉及數(shù)據(jù)傳輸,尤其涉及一種服務端的文件上傳方法、裝置、計算機設備及存儲介質。
背景技術:
1、目前,將文件上傳到服務器時需要計算文件的hash唯一值用于校驗當前文件是否已經(jīng)上傳服務器。如果服務端查詢到hash唯一值存在,說明已經(jīng)上傳過對應的文件,當前用戶如果想要繼續(xù)上傳文件,則進行急速秒傳即可,無需要再上傳。急速秒傳的實現(xiàn)技術方案中使用md5算法或者sha256等算法在瀏覽器端側計算hash唯一值。md5算法產(chǎn)生的散列值通常是32位的16進制值,但目前市場可以碰撞出來,因此不是很安全;sha256算法的散列值長度為256位,?遠遠高于md5的32位,比md5安全,但計算運行時間比md5計算時間更多。并且,md5和sha256的安全性在于文件碰撞(惡意破解hash算法惡意上傳,導致其他用戶急速秒傳失?。?。越安全的hash算法需要運行計算的時間越長。
2、綜上,文件上傳本身是比較耗費時間的,如果每個文件在上傳前都需要計算文件hash唯一值,尤其是大文件更加耗費時間,且占用瀏覽器資源。且文件的hash唯一值必須計算,不然就無法實現(xiàn)文件的秒傳能力。所以,如何安全、高效的實現(xiàn)服務端的文件上傳成為當前亟待解決的問題。
技術實現(xiàn)思路
1、本發(fā)明意在提供一種服務端的文件上傳方法、裝置、計算機設備及存儲介質,以解決現(xiàn)有技術中存在的不足,本發(fā)明要解決的技術問題通過以下技術方案來實現(xiàn)。
2、第一方面,本發(fā)明實施例提供一種服務端的文件上傳方法,包括:
3、響應于用戶觸發(fā)的文件上傳指令查詢待上傳的目標文件;
4、解析所述目標文件的摘要信息并基于預設規(guī)則計算所述目標文件對應的hash唯一值;
5、基于所述摘要信息和hash唯一值判斷所述目標文件的上傳策略;
6、基于所述上傳策略完成服務端的目標文件上傳。
7、在一個可能的實施方式中,所述方法還包括:
8、預先設置不同文件類型對應的標識信息;
9、基于所述目標文件的文件類型確定對應的目標標識信息。
10、在一個可能的實施方式中,所述方法還包括:
11、讀取所述目標文件的文件流,并通過webassembly技術調用md5算法對所述文件流進行hash計算得到第一hash值;
12、結合所述目標文件的文件類型對應的目標標識信息和所述第一hash值,調用sha256算法計算得到所述目標文件對應的hash唯一值。
13、在一個可能的實施方式中,所述方法還包括:
14、將所述目標文件對應的hash唯一值打包成wasm二進制文件。
15、在一個可能的實施方式中,所述方法還包括:
16、將所述摘要信息和hash唯一值發(fā)送到服務端,以使所述服務端基于所述摘要信息和hash唯一值判斷所述目標文件是否已經(jīng)上傳;
17、若是,則確定所述目標文件的上傳策略為急速秒傳操作;
18、若否,則確定所述目標文件的上傳策略為正常上傳操作。
19、在一個可能的實施方式中,所述方法還包括:
20、若確定所述目標文件的上傳策略為急速秒傳操作,則標記所述目標文件已上傳;
21、若確定所述目標文件的上傳策略為正常上傳操作,則將所述目標文件上傳至所述服務端,并同時將所述wasm二進制文件發(fā)送到wasm程序,以使所述wasm程序對所述wasm二進制文件進行hash計算,得到第二hash值。
22、在一個可能的實施方式中,所述方法還包括:
23、基于所述hash唯一值對所述第二hash值進行校驗;
24、在所述目標文件上傳至服務端完成后,在服務端存儲所述hash唯一值標記所述目標文件已上傳。
25、第二方面,本發(fā)明實施例提供一種服務端的文件上傳裝置,包括:
26、響應模塊,用于響應于用戶觸發(fā)的文件上傳指令查詢待上傳的目標文件;
27、解析計算模塊,用于解析所述目標文件的摘要信息并基于預設規(guī)則計算所述目標文件對應的hash唯一值;
28、判斷模塊,用于基于所述摘要信息和hash唯一值判斷所述目標文件的上傳策略;
29、上傳模塊,用于基于所述上傳策略完成服務端的目標文件上傳。
30、第三方面,本發(fā)明實施例提供一種計算機設備,包括:處理器和存儲器,所述處理器用于執(zhí)行所述存儲器中存儲的服務端的文件上傳程序,以實現(xiàn)上述第一方面中所述的服務端的文件上傳方法。
31、第四方面,本發(fā)明實施例提供一種存儲介質,包括:所述存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實現(xiàn)上述第一方面中所述的服務端的文件上傳方法。
32、本發(fā)明實施例包括以下優(yōu)點:
33、本發(fā)明實施例提供的服務端的文件上傳方案,通過響應于用戶觸發(fā)的文件上傳指令查詢待上傳的目標文件;解析所述目標文件的摘要信息并基于預設規(guī)則計算所述目標文件對應的hash唯一值;基于所述摘要信息和hash唯一值判斷所述目標文件的上傳策略;基于所述上傳策略完成服務端的目標文件上傳。相比于傳統(tǒng)的文件上傳方法針對大文件需要消耗大量時間計算hash唯一值占用瀏覽器資源并且由于計算方法簡單導致文件傳輸?shù)陌踩暂^低的問題,由本方案,使用底層程序語言讀取文件,提升用戶端側hash計算的速度;對hash計算結果進行二進制處理,很難進行反編譯破解,提升文件傳輸?shù)陌踩浴?/p>
技術特征:
1.一種服務端的文件上傳方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述目標文件的摘要信息至少包括文件名、文件大小和文件類型;
3.根據(jù)權利要求2所述的方法,其特征在于,所述基于預設規(guī)則計算所述目標文件對應的hash唯一值,包括:
4.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述基于所述摘要信息和hash唯一值判斷所述目標文件的上傳策略,包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述基于所述上傳策略完成服務端的目標文件上傳,包括:
7.根據(jù)權利要求5所述的方法,其特征在于,所述方法還包括:
8.一種服務端的文件上傳裝置,其特征在于,包括:
9.一種計算機設備,其特征在于,包括:處理器和存儲器,所述處理器用于執(zhí)行所述存儲器中存儲的服務端的文件上傳程序,以實現(xiàn)權利要求1~7中任一項所述的服務端的文件上傳方法。
10.一種存儲介質,其特征在于,所述存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實現(xiàn)權利要求1~7中任一項所述的服務端的文件上傳方法。