一、图片存储方案 1.1 常见图片存储方案 实际项目中会拆分不同功能服务器,提升系统运行效率,图片存储常用三种方案: Nginx 搭建图片服务器 分布式文件存储系统(FastDFS、HDFS) 云存储(阿
一、图片存储方案1.1 常见图片存储方案
实际项目中会拆分不同功能服务器,提升系统运行效率,图片存储常用三种方案:
本文选用七牛云对象存储,接入简单、CDN 加速快、适合中小项目快速落地。 1.2 七牛云使用流程1.2.1 注册与实名认证
1.2.2 新建存储空间控制台进入对象存储 KODO
1.2.3 获取 AK/SK 密钥
1.3 Java SDK 接入七牛云
1.3.1 引入 Maven 依赖
1.3.2 封装七牛云工具类将上传、删除封装为工具类,放入公共模块(ICan-common):
二、新增套餐功能(图片上传 + 多对多关联)2.1 需求说明套餐是检查组的集合,套餐与检查组为多对多关系,需中间表t_setmeal_checkgroup关联。新增套餐需录入:
2.2 前端实现(Vue+ElementUI)2.2.1 弹出新增窗口点击新建按钮,清空表单并展示弹窗,同时加载所有检查组:
2.2.2 图片上传与预览使用el-upload组件,限制 JPG 格式、大小≤2MB:
上传前校验:
2.3 后端实现2.3.1 图片上传接口
2.3.2 新增套餐(事务 + 多对多关联)
2.3.3 保存套餐后同步 Redis
三、定时任务组件 Quartz(重点)3.1 Quartz 核心概念
3.2 Cron 表达式格式:秒 分 时 日 月 周 年(年可省略)常用示例:
示例:
前面介绍了cron表达式,但是自己编写表达式还是有一些困难的,我们可以借助一些 cron表达式在线生成器来根据我们的需求生成表达式即可。 http://cron.qqe2.com/ 3.3 SpringBoot 整合 Quartz3.3.1 引入依赖
3.3.2 配置类
四、定时清理垃圾图片(核心)4.1 垃圾图片产生原因用户上传图片后未提交套餐,图片存于七牛云但无数据库记录,成为垃圾文件。 4.2 清理思路
4.3 清理任务实现
五、总结
本文完整实现预约系统套餐管理的图片存储与定时清理,可直接复用至同类项目。 |
2021-06-05
2021-05-27
2021-05-26
2021-06-05
2021-05-16