DocHub文庫系統v1.1版本釋出,類百度文庫開源實現方案
[TOC]
DocHub是使用Go語言的Beego框架實現的文庫方案,使用對商業友好的Apache2.0開源協議進行開源,支援office文件、PDF文件、txt、epub、mobi等多種格式文件的線上閱讀和瀏覽。
升級日誌
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文庫系統對文件格式的支援比網上的一些收費文庫系統對文件格式的支援還要多了吧。
有收到網友建議,建議使用onlyoffice
、Collabora
、flash paper
、pdf.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
管理員賬號密碼均為admin
登入驗證碼是:芝麻開門
原始碼託管
相關文章
- DocHub v1.0 版本釋出,構建你自己的百度文庫
- DocHub文庫PC端模板,文庫系統PC端模板
- DocHub v2.2 釋出,構建你自己的百度文庫
- DocHub v2.3 釋出,構建你自己的百度文庫
- DocHub v2.0 釋出,構建你自己的百度文庫
- ThinkPHP5開發的免費開源的仿百度文庫系統PHP
- mtceo文庫系統
- 貝克曼庫爾特釋出Biomek NGeniuS全自動文庫製備系統
- Go 語言 Excel 類庫 Excelize 2.0.0 版本釋出GoExcelize
- 使用jitPack釋出android開源庫Android
- 使用Jitpack釋出開源Java庫Java
- [開源作品] 譯文管理系統
- Go 語言 Excel 文件類庫 excelize 釋出 1.4.1 版本GoExcelize
- 開源 - Ideal庫 - Excel幫助類,TableHelper實現(二)IdeaExcel
- 開源 - Ideal庫 - Excel幫助類,TableHelper實現(三)IdeaExcel
- 開源 - Ideal庫 - Excel幫助類,ExcelHelper實現(四)IdeaExcel
- 開源 - Ideal庫 - Excel幫助類,ExcelHelper實現(五)IdeaExcel
- 一文詳解 jitpack 多渠道maven庫釋出Maven
- zswin開源社交類部落格建站系統1.6.4釋出
- BookStack V1.1版本釋出,使用Beego開發的功能類似Gitbook和看雲的線上文件管理系統GoGit
- 開源一個自用的Android事件分發中心庫,實現類似系統廣播功能。Android事件
- 開源React Native元件庫beeshell 2.0釋出React Native元件
- Open Sora 釋出!開源的高效復現類 Sora 影片生成方案Sora
- Go 語言 Excel 文件類庫 excelize 釋出1.4.1版本GoExcelize
- 貝克曼庫爾特推出Biomek NGeniuS文庫製備系統
- Tapable v1.1文件翻譯+簡單解釋
- Vue3 企業級優雅實戰 - 元件庫框架 - 12 釋出開源元件庫Vue元件框架
- 一文了解資料庫高可用容災方案的設計與實現資料庫
- .NET 開源匯入匯出庫 Magicodes.IE 2.5釋出
- Linux系統各種庫/軟體版本輸出指令Linux
- 免費下載百度文庫、vip視訊
- 智慧倉庫管理系統:如何實現“零庫存”?
- 共享資源庫系統
- 甲骨文釋出財報,首次透露自治資料庫客戶數資料庫
- .NET Core開源匯入匯出庫 Magicodes.IE 2.3釋出
- C#版本LINQ增強開源庫C#
- 火山引擎釋出豆包大模型文旅解決方案大模型
- .NET Standard中配置TargetFrameworks輸出多版本類庫Framework