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配置中心

5、(必须)PowerDotNet注册中心

6、(必须)PowerDotNet缓存平台

7、(必须)PowerDotNet消息平台

8、(必须)PowerDotNet基础数据平台

9、(必须)PowerDotNet人员管理平台Power.HCRM,后续文章详细介绍

10、(必须)阿里云OSS或FastDFS或本地文件服务器,用于存储文件

一、文件存储配置

在平台管理后台,可以轻松添加文件存储配置,比如OSS、FastDFS和本地文件等。

你可以按需进行配置,比如OSS或者FastDFS(当然FastDFS被誉为配置最繁琐的开源项目就是另一个话题了,只要亲自部署一遍就会体会^_-,咩哈哈)

或者上古时期也比较常见的自己搭建本地文件服务器

文件配置支持按照多租户或多商户的方式配置多个,非常利于扩展。

文件配置设置好以后,通过和应用或者系统的绑定关系:

这样我们的应用就可以使用文件平台提供的文件管理功能了,是不是so easy?

二、文件管理

应用使用文件平台提供的公共服务组件,轻松实现图片、pdf、压缩包等文件的自动上传功能,业务系统只要在自己的系统保留业务编号和文件平台的主键关系,可以调用文件平台公共的查询API轻松实现文件查看等功能。

1、上传文件管理

2、文件预览

通常特定格式的文件上传后都支持直接在浏览器里预览,比如图片、pdf、excel等格式的文件,当然我还单独为图片开发简易图片预览功能。

3、上传补偿

支持针对特殊情况进行文件上传补偿,比如业务数据变化导致文件需要更新、文件上传很久数据迁移丢失等。

 文件平台还支持特定领域一些特殊业务逻辑,如通过OCR组件生成文件异步上传、文件错误重试、按模板自动生成文件等功能,这个不是本文重点,我个人用.NET和Java都开发过,顺带一提,咩哈哈。

参考:

https://help.aliyun.com/document_detail/31817.html

https://github.com/aliyun/aliyun-oss-csharp-sdk

https://github.com/aliyun/alibabacloud-csharp-sdk

https://github.com/happyfish100