DocHub文庫系統v1.1版本釋出,類百度文庫開源實現方案

皇蟲發表於2018-07-10

[TOC]

DocHub是使用Go語言的Beego框架實現的文庫方案,使用對商業友好的Apache2.0開源協議進行開源,支援office文件、PDF文件、txt、epub、mobi等多種格式文件的線上閱讀和瀏覽。

15080300_nM9N.png

15080300_JrjC.png

升級日誌

1. OSS儲存程式碼封裝優化。

review了一下之前自己封裝的OSS程式碼,感覺太亂了...

2. 重新設計登入頁面。

之前的登入頁面確實醜(不過現在的登入頁面好像也好不到哪兒去...)

3. 使用者頭像和文件封面等預設圖片優化

在載入圖片的時候直接在前端使用onerror,不再在後端查詢OSS中圖片是否存在以及不存在時返回預設圖片,以便節省OSS請求資源。

所以,現在不需要再把預設圖片上傳到OSS,然後再在配置檔案裡面配置預設圖片的地址了

4. 配置檔案優化

所有相關配置項,為了配置的方便,都統一放到app.conf檔案中。 配置檔案中的每一項,都加上了詳盡的配置說明。

app.conf檔案,放在conf目錄下,app.conf.example的檔案就是了,把.example副檔名去掉就好

5. mobi、epub、chm、txt等格式文件線上瀏覽的實現支援。

目前DocHub文庫經實測支援線上閱讀的文件格式如下:

Word文件:doc,docx,rtf,wps,odt

Excel文件:ppt,pptx,pps,ppsx,dps,odp,pot

PPT文件:xls,xlsx,et,ods

PDF文件:pdf

其他文件:txt,epub,mobi,chm

umd格式文件暫不支援線上閱讀,chm格式文件線上閱讀實現效果並不是很好,文件內容順序會錯亂。

相信DocHub文庫系統對文件格式的支援比網上的一些收費文庫系統對文件格式的支援還要多了吧。

有收到網友建議,建議使用onlyofficeCollaboraflash paperpdf.js等實現文件線上閱讀的方案。

集思廣益,非常感謝大家積極提意見和建議。

然後我也認真的去體驗和測試了。就拿onlyoffice來說,我在docker下玩了下(我的docker hub : https://hub.docker.com/r/truthhun/onlyoffice/ ),每次都進行文件轉換,太耗費伺服器資源了,而且,使用者可以直接拿到下載文件,相信這是很多站長不願看到的。

而且使用者需要把整個文件載入下來才能閱讀,也比較耗費頻寬資源。新浪愛問共享資料都用圖片作為文件線上閱讀實現方案,相信他們也是有這一層面的考慮的,所以,我們跟著大佬走。

6. 解決郵件無法傳送的問題

統一使用SMTP傳送郵件,並實現對TLS/SSL郵件的傳送支援。使用了https://github.com/go-gomail/gomail庫 。

有網友在群裡反饋說郵件發不出去...由於沒人幫我測試,我現在是自己開發自己測試,基本都是自己測試通過了沒問題了就預設這個功能沒問題了,很多場景可能考慮不到,所以有些問題我自己還是難以發現,並沒有把大家當小白鼠...

7. 文件閱讀頁面效能優化

之前的文件閱讀頁面,當文件翻的頁數越多,頁面會越來越卡,直到卡死在那裡(巨大的Bug)...

這是前端js對文件的svg重複計算造成的,比如我翻到第100頁,每次滾動一下滑鼠,差不多就要觸發3000多次對svg圖片位置的計算,以便確定使用者當前閱讀到了哪一頁,以及觸發哪一頁的懶載入...

8. 文件預覽頁數限制

可在管理後臺->系統設定->文件最大預覽頁數做限制。

這樣的好處就是,如果一個300頁的文件,只提供100頁給使用者閱讀,就可以減少伺服器後端PDF後200頁文件轉svg的資源開銷。

不提供大文件的全文件給使用者閱讀,既可以節省伺服器資源,也可以促進使用者使用積分下載文件...新浪愛問共享資料就是這麼幹的...

安裝部署教程

目前只寫了docker的安裝部署教程,部署教程地址:https://www.bookstack.cn/read/dochub/docker

DocHub文庫系統,目前並不是很完美,移動端WAP站點和微信小程式還沒開發,但是,我在努力!

演示站點

地址:http://dochub.bookstack.cn

管理後臺:http://dochub.bookstack.cn

管理員賬號密碼均為admin

登入驗證碼是:芝麻開門

原始碼託管

相關文章