本發(fā)明涉及在線預(yù)覽領(lǐng)域,尤其涉及一種在線預(yù)覽方法及裝置。
背景技術(shù):
1、網(wǎng)盤已成為當代網(wǎng)民的重要工具,越來越多的用戶選擇將照片、文檔、視頻等文件上傳到網(wǎng)盤中,隨之而來的是在網(wǎng)盤中查看預(yù)覽這些文件的需求?,F(xiàn)有技術(shù)通常采取客戶端渲染的方式,以pdf為例,客戶端將pdf的原始文件下載下來,利用客戶端算力渲染pdf,這種方式能覆蓋相當一部分情況,但是依然有下列不足,例如設(shè)備硬件資源不足,有的pdf會出現(xiàn)大量復雜的矢量圖需要渲染,這既需要大量算力,也需要不少運行內(nèi)存,這可能導致客戶端卡頓甚至無響應(yīng);流量消耗問題,有的pdf是掃描版,不管是文字還是圖片,都以高清圖片的方式儲存,這導致原始pdf尺寸巨大,直接傳輸會消耗更多流量,也使得pdf預(yù)覽變慢。
2、現(xiàn)有技術(shù)中還存在服務(wù)端渲染的方式,將pdf轉(zhuǎn)換成圖片再展示,然而其渲染精度固定,無論在何種設(shè)備,預(yù)覽的文件大小固定,在小屏設(shè)備會比較浪費流量,還存在未按需渲染的問題,渲染的時候通常會將文件的所有頁碼都渲染完,這對于多人上傳pdf后立即開始預(yù)覽的場景,會浪費算力,導致轉(zhuǎn)換速度慢,體驗差。
3、而目前并沒有一種能夠解決上述技術(shù)問題的技術(shù)方案,并沒有一種在線預(yù)覽方法及裝置。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供了一種在線預(yù)覽方法及裝置,利用目標預(yù)覽路徑、客戶端對應(yīng)的dpi以及目標預(yù)覽頁碼相結(jié)合的方式,對于任一目標格式文件,只要終端設(shè)備能流暢展示圖片,就能實現(xiàn)在線預(yù)覽,減輕了客戶端預(yù)覽的壓力。
2、第一方面,本發(fā)明提供了一種在線預(yù)覽方法,包括:
3、任一客戶端向網(wǎng)盤發(fā)起預(yù)覽請求,所述預(yù)覽請求用于指示根據(jù)目標唯一標識預(yù)覽目標預(yù)覽頁碼對應(yīng)的目標格式文件,所述目標唯一標識包括目標預(yù)覽路徑、所述客戶端對應(yīng)的dpi以及所述目標預(yù)覽頁碼,所述目標格式文件包括pdf文件或epub文件;
4、響應(yīng)于所述預(yù)覽請求,在確定本地硬盤中存在與所述目標唯一標識相匹配的目標緩存的情況下,從所述本地硬盤中調(diào)取所述目標緩存,發(fā)送所述目標緩存至所述客戶端,以在所述客戶端中預(yù)覽所述目標格式文件對應(yīng)的目標圖片;
5、在確定所述本地硬盤中不存在與所述目標唯一標識相匹配的目標緩存的情況下,利用預(yù)設(shè)python腳本讀取所述目標預(yù)覽頁碼對應(yīng)的目標格式文件,利用所述客戶端對應(yīng)的dpi轉(zhuǎn)換所述目標格式文件,得到所述目標圖片,以在所述客戶端中預(yù)覽所述目標格式文件對應(yīng)的目標圖片;
6、所述本地硬盤中存儲有多個歷史緩存,以及每一歷史緩存與每一歷史唯一標識的對應(yīng)關(guān)系,所述歷史緩存為歷史存儲的圖片。
7、根據(jù)本發(fā)明提供的在線預(yù)覽方法,在得到所述目標圖片之后,所述方法還包括:
8、存儲所述目標圖片以及所述目標圖片對應(yīng)的目標唯一標識至所述本地硬盤;
9、在確定圖片緩存后,構(gòu)建所述圖片緩存與所述目標唯一標識的對應(yīng)關(guān)系。
10、根據(jù)本發(fā)明提供的在線預(yù)覽方法,在任一客戶端向網(wǎng)盤發(fā)起預(yù)覽請求之前,獲取目標文件的預(yù)覽密碼以及頁碼尺寸;
11、根據(jù)所述預(yù)覽密碼解鎖所述目標文件,根據(jù)所述頁碼尺寸構(gòu)建預(yù)覽框,以在所述客戶端的所述預(yù)覽框中預(yù)覽所述目標格式文件對應(yīng)的目標圖片;
12、所述目標文件包括所有預(yù)覽頁碼對應(yīng)的每一目標格式文件。
13、根據(jù)本發(fā)明提供的在線預(yù)覽方法,在響應(yīng)于所述預(yù)覽請求之前,所述方法還包括:
14、在確定所述目標文件被修改的情況下,確定所有被修改頁碼;
15、在所述本地硬盤中刪除每一被修改頁碼對應(yīng)的歷史緩存,并刪除所述歷史緩存與歷史唯一標識的對應(yīng)關(guān)系。
16、根據(jù)本發(fā)明提供的在線預(yù)覽方法,所述客戶端對應(yīng)的dpi為目標dpi檔位;
17、在任一客戶端向網(wǎng)盤發(fā)起預(yù)覽請求之后,所述方法還包括:
18、根據(jù)窗口實際寬度以及用戶預(yù)設(shè)縮放率確定dpi值;
19、根據(jù)所述dpi值,從預(yù)設(shè)dpi值與預(yù)設(shè)dpi檔位的對應(yīng)關(guān)系中,得到目標dpi檔位。
20、根據(jù)本發(fā)明提供的在線預(yù)覽方法,所述目標唯一標識的展現(xiàn)形式包括如下任一種:
21、目標預(yù)覽路徑/目標預(yù)覽頁碼_目標dpi檔位;
22、目標預(yù)覽路徑/目標預(yù)覽頁碼/目標dpi檔位;
23、目標預(yù)覽路徑_目標預(yù)覽頁碼_目標dpi檔位;
24、或者,目標預(yù)覽路徑_目標預(yù)覽頁碼/目標dpi檔位。
25、根據(jù)本發(fā)明提供的在線預(yù)覽方法,所述目標圖片的圖片格式為webp格式、jpg格式或png格式中的任一種;
26、所述利用預(yù)設(shè)python腳本讀取所述目標預(yù)覽頁碼對應(yīng)的目標格式文件,包括:
27、利用預(yù)設(shè)python腳本調(diào)用mupdf庫,以讀取所述目標預(yù)覽頁碼對應(yīng)的目標格式文件。
28、根據(jù)本發(fā)明提供的在線預(yù)覽方法,所述目標預(yù)覽頁碼包括當前預(yù)覽頁碼、所述當前預(yù)覽頁碼之前的多個前向頁碼以及所述當前預(yù)覽頁碼之后的多個后向頁碼;
29、在響應(yīng)于所述預(yù)覽請求之后,在所述客戶端中預(yù)覽所述當前預(yù)覽頁碼對應(yīng)的目標圖片,并完成對于多個前向頁碼以及多個后向頁碼的后臺加載;
30、響應(yīng)于用戶的滑動操作,所述客戶端中預(yù)覽所述多個前向頁碼對應(yīng)的圖片,或,預(yù)覽多個后向頁碼對應(yīng)的圖片。
31、根據(jù)本發(fā)明提供的在線預(yù)覽方法,在響應(yīng)于用戶的滑動操作之后,所述方法還包括:
32、在確定預(yù)覽超出所述目標預(yù)覽頁碼對應(yīng)的加載范圍之外的情況下,將當前未加載頁面作為目標預(yù)覽頁碼,重新生成預(yù)覽請求,以在所述客戶端中預(yù)覽所述目標格式文件對應(yīng)的目標圖片。
33、第二方面,提供了一種在線預(yù)覽裝置,包括:
34、(1)發(fā)起單元,所述發(fā)起單元用于任一客戶端向網(wǎng)盤發(fā)起預(yù)覽請求,所述預(yù)覽請求用于指示根據(jù)目標唯一標識預(yù)覽目標預(yù)覽頁碼對應(yīng)的目標格式文件,所述目標唯一標識包括目標預(yù)覽路徑、所述客戶端對應(yīng)的dpi以及所述目標預(yù)覽頁碼,所述目標格式文件包括pdf文件或epub文件;
35、(2)響應(yīng)單元,所述響應(yīng)單元用于響應(yīng)于所述預(yù)覽請求,在確定本地硬盤中存在與所述目標唯一標識相匹配的目標緩存的情況下,從所述本地硬盤中調(diào)取所述目標緩存,發(fā)送所述目標緩存至所述客戶端,以在所述客戶端中預(yù)覽所述目標格式文件對應(yīng)的目標圖片;
36、(3)轉(zhuǎn)換單元,所述轉(zhuǎn)換單元用于在確定所述本地硬盤中不存在與所述目標唯一標識相匹配的目標緩存的情況下,利用預(yù)設(shè)python腳本讀取所述目標預(yù)覽頁碼對應(yīng)的目標格式文件,利用所述客戶端對應(yīng)的dpi轉(zhuǎn)換所述目標格式文件,得到所述目標圖片,以在所述客戶端中預(yù)覽所述目標格式文件對應(yīng)的目標圖片;
37、(4)所述本地硬盤中存儲有多個歷史緩存,以及每一歷史緩存與每一歷史唯一標識的對應(yīng)關(guān)系,所述歷史緩存為歷史存儲的圖片。
38、本發(fā)明在客戶端向網(wǎng)盤發(fā)起預(yù)覽請求時,將目標唯一標識和預(yù)覽頁碼傳遞給后端服務(wù)器,后端服務(wù)器根據(jù)目標唯一標識查詢目標格式文件,在存在緩存時顯示緩存圖片,不存在緩存時再將目標格式文件轉(zhuǎn)換為圖片進行顯示,本發(fā)明實現(xiàn)了將pdf文件轉(zhuǎn)換為圖片進行預(yù)覽的客戶端預(yù)覽操作,減少了客戶端對于文件格式的處理,減輕了客戶端的負擔;本發(fā)明還增強了預(yù)覽操作的安全性,只有經(jīng)過授權(quán)的客戶端才能解鎖目標文件進行預(yù)覽,確??蛻舳双@取的預(yù)覽圖片與最新的目標文件內(nèi)容一致,避免顯示過時或錯誤的信息,通過定期的檢查和更新操作,保持了預(yù)覽系統(tǒng)的數(shù)據(jù)一致性;通過適當?shù)膁pi值選擇和轉(zhuǎn)換方式,生成的預(yù)覽圖片清晰度較高,提高了顯示效果,避免了圖像模糊或失真的問題,提升了用戶體驗。