功能说明:
1.权限校验(AppId,APPsecret | appsettings.json 中 Auth 配置)
2.文件上传(支持格式校验和文件格式限制 | appsettings.json 中 ContentType 配置)
3.图片文件处理(压缩,等比裁剪,添加水印)
4.上传位置(支持 服务器本地存储,阿里云OSS,七牛云存储,AWS S3 | appsettings.json 中 UploadConfig 配置)
这里要注意,如果将文件存储到服务器本地,需要做好相关安全策略,比如限制某些格式的文件上传,上传的文件夹做好权限控制,比如不提供执行文件的权限,有条件的还可以先对上传的内容运行病毒/恶意软件扫描程序,然后再存储文件
5.接口限流控制(基于 AspNetCoreRateLimit | appsettings.json 中 ClientRateLimiting 配置)
会遇到的问题:
1.文件上传过大导致的报错(解决方法)
将上传服务独立化的目的:
逐步将单体软件架构的web服务进行分离处理,包括之前的 websocket 服务,目的主要还是为了进行微服务化,将业务分离,并且利于性能扩展,各个服务单独维护,无需一个服务程序问题而将整个web服务进行全部发布,造成线上用户访问中断
代码:github