­

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

//github.com/happyfish100

//www.cnblogs.com/dubing/archive/2012/01/09/2316903.html

//www.cnblogs.com/Leo_wl/p/6731647.html