SCI论文(www.lunwensci.com):
摘 要:本文提出并设计了一个文件收集系统,通过内建组件与第三方存储 API 的整合,实现文件云端存储、打包、自动 重命名等, 让收集者告别繁琐的文件整理工作。通过对接钉钉 Webhook, 实现自动发送消息提醒, 减少提交者忘记提交的烦 恼,提高效率,尤其适用于教学场合。
关键词:收集系统 ;云存储 ;Webhook ;自动化
Design and Implementation of Document Collection System Based on Webhook
AN Runlu, WU Xiaoyu, ZHANG Zhongjian
(School of Cyberspace Security, Qufu Normal University, Jining Shandong 273165)
【Abstract】:This paper proposes and designs a file collection system. Through the integration of built-in components and third-party storage APIs, it realizes cloud storage, packaging, and automatic renaming of files, so that collectors can say goodbye to tedious file sorting. Webhook, realizes automatic sending of message reminders, reduces the trouble of submitters forgetting to submit, and improves efficiency, especially suitable for teaching occasions.
【Key words】:collection system;cloud storage;Webhook;automation2022 年
0 引言
随着互联网教育和自动化办公的普及,越来越多分 散文件的主观归档问题开始显现出来,其中就包括文件 的收集问题 [1]。电子邮件收集方式,存在大量的后期文 件整理和排查工作、存储容量有限、提交者容易忘记提 交等问题 ;即时通讯工具收集方式,存在大量的后期文 件整理和排查工作、不易保护隐私等问题 ;网盘收集方 式,存在大量的后期文件整理和排查工作、下载限速等 问题 ;教学平台收集方式,存在仅限教师使用、占用过 多服务器资源等问题 [2]。
1 相关工作
MongDB 数据库是一个基于分布式文件存储的开 源数据库系统,在高负载的情况下,添加更多的节点, 可以保证服务器的性能。它将数据存储为一个文档,存 储数据结构由键值(key=value)对组成,文档类似于 JSON 对象,字段值可以包含其他的文档或数组及文档数组。同时 MongDB 也是一个面向文档存储的数据库, 性能高、速度快、操作容易、简单 [3]。
七牛云存储(现已更名为“七牛云”)是国内领先 的企业级公有云服务商,致力于打造以数据为核心的场 景化 PaaS 服务。七牛云对象存储服务首创分布式存储 架构,具备高可用性和高可靠性,并支持水平扩展至 EB 级存储容量 [4]。
Webhook 是网页开发中的一种通过自定义回调函 数来增加或更改网页表现的方法。这些回调可被可能与 原始网站或应用相关的第三方用户及开发者保存、修改 与管理。
2 系统功能分析与设计
2.1 功能分析
为了能够高效的进行文件收集,本文描述的系统设 计了两个微服务,分别是文件服务和消息服务。文件服 务关注于文件的收集整理工作,消息服务致力于发送一站式提醒,两服务协调配合为用户提供完整优质的功能 体验,系统的功能结构,如图 1 所示。
文件服务,包含任务列表、创建收集、我的收集和我的文件四个模块,这四个模块围绕收集的发布和回收 功能展开。其中“我的收集”作为核心模块,文件的打 包下载、自动重命名的功能均在此模块实现,另外此模块是连接消息服务的桥梁。
消息服务,包含消息中心、发送提醒、我的群组和我的组织四个模块, “消息中心”作为核心模块,提供 统一而有层次性的提醒服务。
2.2 功能设计
本系统的交互逻辑与主流媒体平台的交互逻辑高度 吻合,用户查看任务、发布收集和打包下载等操作均在 一个浏览器视窗下完成,保证操作编辑顺畅,系统的业务流程。
本系统使用的数据库系统是 MongoDB,它是一种 文档型数据库,优点是存储成本低、灵活性高。基于文 档的数据结构相对来说更适合本系统,尤其是在文件元 信息等非结构化数据的存储对接上优势更为明显。
本系统使用七牛云存储作为文件存储服务器,通过 对接七牛云 API,实现文件的打包下载、批量重命名等 功能,依托云服务节约开发成本的同时又高效可靠。
2.3 系统实现
本系统分为前端和后端,采用前后端分离的架构模 式 [5]。系统业务流程图, 如图 2 所示。后端使用 Node.js 作 为后端运行环境,采用基于 IoC 和 AOP 的 Node.js 框架 来完成功能开发 [6],同时采用单体 MVC 模式与微服务 结合的架构模式,即宏观上可以把文件服务和消息服务 理解为相对于整个系统的两个微服务,而具体的每一个 服务又是一个单体应用 [7]。前端采用基于 Vue.js 的响应 式框架 Quasar 进行开发, 用到 socket.io、tinymce- vue、qiniu-js 等 npm 组件辅助完成包括客户端服务端双 向通信、富文本编辑、七牛云存储对接等在内的一些列功 能,同时前端采用 MVVM 架构,利用 Vue.js、Quasar 等前端框架来实现。打包后的静态文件由 Nginx 服务 器托管,由于服务直接暴露在公网环境下,为了增强系 统安全性在全站启用了 HTTPS 通信。
消息服务是一个独立的提醒服务,作为收集系统的 重要一个组成部分,上达系统下至用户端,起到的作用举足轻重,也是 Webhook 的主要发力点, 考虑到与钉 钉 Webhook 的对接成本,该服务使用 Python 作为开 发语言, 配合 Flask、APScheduler、PyMongo 等模 块实现了消息的即时和定时推送。具体地,消息服务包 含两个子模块,分别是任务定时轮询模块和消息发送模 块。消息服务架构细节,如图 3 所示。
任务轮询模块,该模块基于 APScheduler 实现, 主要负责定时(取决于系统设置,通常设置为 5min 一 次)从数据库的收集任务队列里轮询新创建的收集和即 将过期的收集,通过内部调用触发消息发送模块的消息 发送机制,完成消息发送。
消息发送模块,该模块接收来自服务内部或外部的 HTTP 调用请求, 根据请求中的任务 ID 从数据库查询 到对应的被通知群组对象,进而请求钉钉的 Webhook 服务发送提醒通知给相应的用户。
3 结语
基于 Webhook 的文件收集系统,实现了自动提醒、 自动重命名和自动打包下载功能,系统上线一年多来如愿地解决了用户的痛点问题,受到广泛的好评。在未来 将继续向智能化人性化方向优化,提升用户体验。
参考文献
[1] 杨柳.对象存储下的溯源收集与存储分析[J].信息记录材料, 2021,22(6):197-199.
[2] 庄磊.基于PaaS云平台的数据存储方案设计与应用[J].信息 技术,2022(2):110-115.
[3] 潘永华,闭应洲,符云琴.基于MongoDB的医学图像管理技 术研究[J].广西师范学院学报(自然科学版),2017,34(2):54-59. [4] 刘芳芳.基于ThinkPHP和七牛云存储的电子中心实验室网 站的应用开发[J].电子技术与软件工程,2017(20):43-44.
[5] 霍福华,韩慧.基于SpringBoot微服务架构下前后端分离的 MVVM模型[J].电子技术与软件工程,2022(1):73-76.
[6] 陈荣鑫.基于NodeJS+Express框架的学院会议室预定系统 设计与开发[J].信息与电脑(理论版),2021,33(2):95-97.
[7] 刘帅华,王天青.企业传统应用架构向微服务架构转型的一 种流程设计[J].微型电脑应用,2021,37(10):105-107.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/45820.html