您的位置 首页 网络杂谈

低代码平台内置服务——文件服务(附源码)

业务系统中一般用关系数据库存储结构化的业务数据,非结构化的数据,比如:图片、音频、视频、文书附件等等文件如何存…

业务系统中一般用关系数据库存储结构化的业务数据,非结构化的数据,比如:图片、音频、视频、文书附件等等文件如何存储呢?
低代码平台通过内置文件服务来统一存储这些非结构化数据。文件服务应该解决哪些问题:
1,相同文件重复存储的问题。
2,大文件断点上传和下载的问题。
3,敏感文件的加密问题。
乐扣低代码平台的文件服务器已经开源 ,需要的朋友可以自行获取参考。
文件服务器开源项目
相同内容文件只存储一份
文件服务通过将文件基本信息和文件存储信息分开处理的方式来解决这个问题。文件的基本信息中存放,文件的归属人员、项目、系统,文件的名称、上传时间、文件大小等等。文件存储信息以文件的hash值(比如MD5)作为主键,同时还有文件的物理存储方式、存储位置和引用计数。
在上传文件时通过对文件内容进行hash算法得到文件的MD5码,操作文件存储信息中,如果文件即存在只有增加引用计数qq代挂程序源码,如果不存在则添加一条记录,并存储当前文件。文件删除时只要减少这个文件引用计数,如果减少到0就可以直接删除了。
在业务系统中由于有文件传阅的功能,很多文件被重复上传多次,这样在上传时计算MD5码就可以实现文件秒传的功能,即文件服务器上如果已存在相同的文件就不需要正真的上传了。
文件的物理存储

文件的存储有很多种方式:
文件服务器需要将文件存储部分抽象为一个接口,并做多个存储方案,这样使用时可以方便替换。
文件断点上传与下载
断点上传的步骤就是qq代挂程序源码,载文件上传前计算文件的HASH值,然后和文件信息一同提交。HTTP协议中有文件片段上传下载的标准说明,利用request中的range参数,指定上传下载的片段,这样就可以和市面上通用的断点下载工具兼容了。
参见 UploadDownloadUtils.java 中的uploadRange 和 downFileRange 。
敏感文件的上传和下载
敏感文件上传时同时指定加密密码,文件服务器将文件加密后存储,但是文件服务器不存储密码,下载时需要密码解密,或者直接下载加密文件下载后自行解密。
文件服务器客户端
文件服务作为一个后台服务,提供restful风格的接口。同时系统提供了一个图像化的文件服务器,类似于百度网盘,并且提供相同文件名的多版本管理。
文件服务器界面
总结
低代码平台为了提高研发效率,需要将一些通用的问题通过内置服务来解决。文件服务就是一个最为常见的服务。
先腾的文件服务器的源代码 已经在github上开源,供同行们参考,也希望各位大佬给出宝贵的改进建议。

本文来自网络,不代表卡奇财经立场,转载请注明出处:https://www.hfhnjr.com/?p=42644

作者: 卡奇财经

联系我们

联系我们

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部