PowerDotNet平台化軟體架構設計與實現系列(10):文件平台
很多業務系統少不了需要進行文件管理,比如各種圖片、excel、pdf、壓縮包等等,為了高度可復用,我們抽象出文件平台,加強對文件進行管理。
PowerDotNet文件平台目前支援阿里雲OSS、FastDFS和本地文件伺服器三種上傳存儲類型。
根據我前面文章介紹資料庫、快取、隊列等公共服務平台的一貫風格,文件平台也是只要在管理後台點一點,引入公共服務文件上傳必要組件,一個應用就可以輕鬆實現文件管理主要功能,包括(同步或非同步)上傳、查看、刪除、定時自動上傳等。
在PowerDotNet中,目前文件平台已經被默認使用於PowerDotNet實現的支付平台、財務平台、HCRM(人員管理)和PCRM(個人用戶管理)中,後續有空再簡單介紹下這些業務平台系統。
環境準備
1、(必須).Net Framework4.5+
2、(必須)關係型資料庫MySQL或SqlServer或PostgreSQL或MariaDB四選一
3、(必須)PowerDotNet資料庫管理平台,主要使用DBKey功能
4、(必須)PowerDotNet配置中心Power.ConfigCenter
5、(必須)PowerDotNet註冊中心Power.RegistryCenter
6、(必須)PowerDotNet快取平台Power.Cache
7、(必須)PowerDotNet消息平台Power.Message
8、(必須)PowerDotNet基礎數據平台Power.BaseData
9、(必須)PowerDotNet人員管理平台Power.HCRM,後續文章詳細介紹
10、(必須)阿里雲OSS或FastDFS或本地文件伺服器,用於存儲文件
一、文件存儲配置
在平台管理後台,可以輕鬆添加文件存儲配置,比如OSS、FastDFS和本地文件等。
你可以按需進行配置,比如OSS或者FastDFS(當然FastDFS被譽為配置最繁瑣的開源項目就是另一個話題了,只要親自部署一遍就會體會^_-,咩哈哈)
或者上古時期也比較常見的自己搭建本地文件伺服器
文件配置支援按照多租戶或多商戶的方式配置多個,非常利於擴展。
文件配置設置好以後,通過和應用或者系統的綁定關係:
這樣我們的應用就可以使用文件平台提供的文件管理功能了,是不是so easy?
二、文件管理
應用使用文件平台提供的公共服務組件,輕鬆實現圖片、pdf、壓縮包等文件的自動上傳功能,業務系統只要在自己的系統保留業務編號和文件平台的主鍵關係,可以調用文件平台公共的查詢API輕鬆實現文件查看等功能。
1、上傳文件管理
2、文件預覽
通常特定格式的文件上傳後都支援直接在瀏覽器里預覽,比如圖片、pdf、excel等格式的文件,當然我還單獨為圖片開發簡易圖片預覽功能。
3、上傳補償
支援針對特殊情況進行文件上傳補償,比如業務數據變化導致文件需要更新、文件上傳很久數據遷移丟失等。
文件平台還支援特定領域一些特殊業務邏輯,如通過OCR組件生成文件非同步上傳、文件錯誤重試、按模板自動生成文件等功能,這個不是本文重點,我個人用.NET和Java都開發過,順帶一提,咩哈哈。
參考:
//help.aliyun.com/document_detail/31817.html
//github.com/aliyun/aliyun-oss-csharp-sdk
//github.com/aliyun/alibabacloud-csharp-sdk
//www.cnblogs.com/dubing/archive/2012/01/09/2316903.html
//www.cnblogs.com/Leo_wl/p/6731647.html