当前位置: 首页 > wzjs >正文

上海做网站公司推荐广西建设厅网站绿色建筑标识

上海做网站公司推荐,广西建设厅网站绿色建筑标识,东莞企业制作网站,百度竞价排名危机事件一、图片存储介绍 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务…

一、图片存储介绍

在实际开发中,我们会有很多处理不同功能的服务器。例如:

应用服务器:负责部署我们的应用

数据库服务器:运行我们的数据库

文件服务器:负责存储用户上传文件的服务器
在这里插入图片描述

分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。

常见的图片存储方案:

方案一:使用nginx搭建图片服务器

方案二:使用开源的分布式文件存储系统,例如Fastdfs、HDFS等

方案三:使用云存储,例如阿里云、七牛云等

二、垃圾图片问题分析

我们已经完成了文件上传。但是这个过程存在一个问题,就是如果用户只上传了图片而没有最终保存套餐信息到我们的数据库,这时我们上传的图片就变为了垃圾图片。对于这些垃圾图片我们需要定时清理来释放磁盘空间。这就需要我们能够区分出来哪些是垃圾图片,哪些不是垃圾图片。如何实现呢?

方案就是利用redis来保存图片名称,具体做法为:

步骤1、当用户上传图片后,将图片名称保存到redis的一个Set集合中,例如集合名称为setmealPicResources

步骤2、当用户添加套餐后,将图片名称保存到redis的另一个Set集合中,例如集合名称为setmealPicDbResources

步骤3、计算setmealPicResources集合与setmealPicDbResources集合的差值,结果就是垃圾图片的名称集合,清理这些图片即可

本文章我们先来完成前面2个步骤,第3个环节(清理图片环节)我们会通过定时任务来实现。清理垃圾图片并不需要实时清理,一般情况下,一个月两个月清理一次,就可以。我们需要使用到定时任务。

三、垃圾图片清理的实现步骤

实现步骤:

步骤一:在health_backend项目中提供Spring配置文件spring-redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--Jedis连接池的相关配置--><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxTotal"><value>200</value></property><property name="maxIdle"><value>50</value></property><property name="testOnBorrow" value="true"/><property name="testOnReturn" value="true"/></bean><bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig" ref="jedisPoolConfig" /><constructor-arg name="host" value="127.0.0.1" /><constructor-arg name="port" value="6379" type="int" /><constructor-arg name="timeout" value="30000" type="int" /></bean>
</beans>

步骤二:在health_common工程中提供Redis常量类

package com.it.constant;public class RedisConstant {//套餐图片所有图片名称public static final String SETMEAL_PIC_RESOURCES = "setmealPicResources";//套餐图片保存在数据库中的图片名称public static final String SETMEAL_PIC_DB_RESOURCES = "setmealPicDbResources";
}

步骤三:完善SetmealController,在文件上传成功后将图片名称保存到redis集合中

@Autowired
private JedisPool jedisPool;
//图片上传
@RequestMapping("/upload")
public Result upload(@RequestParam("imgFile")MultipartFile imgFile){try{//获取原始文件名String originalFilename = imgFile.getOriginalFilename();int lastIndexOf = originalFilename.lastIndexOf(".");//获取文件后缀String suffix = originalFilename.substring(lastIndexOf - 1);//使用UUID随机产生文件名称,防止同名文件覆盖String fileName = UUID.randomUUID().toString() + suffix;QiniuUtils.upload2Qiniu(imgFile.getBytes(),fileName);//图片上传成功Result result = new Result(true, MessageConstant.PIC_UPLOAD_SUCCESS);result.setData(fileName);//将上传图片名称存入Redis,基于Redis的Set集合存储jedisPool.getResource().sadd(RedisConstant.SETMEAL_PIC_RESOURCES,fileName);return result;}catch (Exception e){e.printStackTrace();//图片上传失败return new Result(false,MessageConstant.PIC_UPLOAD_FAIL);}
}

步骤四:在health_service_provider项目中提供Spring配置文件applicationContext-redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--Jedis连接池的相关配置--><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxTotal"><value>200</value></property><property name="maxIdle"><value>50</value></property><property name="testOnBorrow" value="true"/><property name="testOnReturn" value="true"/></bean><bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig" ref="jedisPoolConfig" /><constructor-arg name="host" value="127.0.0.1" /><constructor-arg name="port" value="6379" type="int" /><constructor-arg name="timeout" value="30000" type="int" /></bean>
</beans>

步骤五:完善SetmealServiceImpl服务类,在保存完成套餐信息后将图片名称存储到redis集合中

@Autowired
private JedisPool jedisPool;
//新增套餐
public void add(Setmeal setmeal, Integer[] checkgroupIds) {setmealDao.add(setmeal);if(checkgroupIds != null && checkgroupIds.length > 0){setSetmealAndCheckGroup(setmeal.getId(),checkgroupIds);}savePic2Redis(setmeal.getImg());
}
//将图片名称保存到Redis
private void savePic2Redis(String pic){jedisPool.getResource().sadd(RedisConstant.SETMEAL_PIC_DB_RESOURCES,pic);
}
http://www.dtcms.com/wzjs/571175.html

相关文章:

  • 山东饰品行业网站制作网站制作设计哪家公司好
  • 个人网站模板html小程序建站平台
  • 网站建设重庆最加科技怎么给网站做开场动画
  • 不用花生壳做网站服务器wordpress建的网站
  • 如何与别的网站做友情链接服务网站欣赏
  • 足球网站模板下载wordpress下载页插件
  • 找做外墙油漆网站什么网站做跨境电子商务
  • 软件跟网站开发的区别公众号官网登录
  • 怎么做公司免费网站织梦网站文章发布模板下载
  • 太仓做企业网站服务器租赁合同范本
  • 网站开发工作商城网站定制建设价位
  • 南京建设网站维护2021深圳装修公司排名前十强
  • 网站建设备案优化网上书店网站建设方案策划
  • 非洲用什么网站做采购能够做冶金工程毕业设计的网站
  • 用html做网站的心得体会免费个人网站源码
  • 抖音网络营销案例抖音seo搜索引擎优化
  • 响应式网站开发遇到的问题导购网站怎么做
  • 网站开发公司+重庆网站建设成交话术
  • 凡科建站登录中山市路桥建设有限公司网站
  • 临沂专业网站制作北京网站优化经理
  • 重庆整站优化的电话销售wordpress云端采集
  • 帝国程序如何改网站标题asp.net做简易网站
  • 公司网站建设高端网站建设网页设计备案价格网站
  • 公司做个网站多少钱阿里云公司网站制作
  • 刘金鹏做网站网页设计产品介绍页面的制作
  • 桐乡建设规划局网站wordpress如何套用模板
  • 引领网站深圳网络公司有哪些
  • 推广网站排名哪个网站做h5好用
  • 开发手机网站用什么语言沪尚茗居全包价格
  • 为什么我的网站无法访问模板ppt免费