# imgServer **Repository Path**: 54ll/imgServer ## Basic Information - **Project Name**: imgServer - **Description**: 图片服务器 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2017-01-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 项目名称 ### - 图片服务项目 ### 项目目标 ### - 图片访问与web项目分离,图片文件集中管理 - 减轻web服务器I/O负载,提高web服务响应速度 - 独立的图片上传服务器,web项目不提供文件上传入口,提高web项目安全性 - 集中控制图片上传,统一处理图片操作。比如:压缩、水印、校验 等 - 支持分布式提供图片上传、下载服务,提高图片访问效率 - 提供标准的图片上传、访问前端控件,简化web项目开发 ### 项目要求 ### - 独立服务器 - 独立域名 - 图片缓存服务 - 标准前端控件 - 项目授权控制 - 支持分布式 ### 项目框架 ### - Nginx 、Tomcat 、SpringMVC 、MongoDB ### 项目成员 ### - 郑浩、曾世华、汤曙磊 ### 处理逻辑 ### 1.图片上传处理流程 1.验证客户端token ,如果不对,返回异常。 2.获取图片二进制流生成md5图片名称。 3.按客户端token + 图片名称 检查数据记录是否存在 1.存在: 1.返回图片名称给客户端 2.不存在: 1.按文件名称检查图片是否已存在 1.存在: 1.保存客户端与图片名称关联关系(数据库操作) 2.返回图片名称给客户端 2.不存在: 1.按2级目录结构保存文件。(2级目录结构:文件名称的第一个字符为第一级目录,第二个字符为第二级目录) 2.保存客户端与图片名称关联关系(数据库操作) 3.返回图片名称给客户端 2.图片访问处理流程 1.先由web服务器接收用户请求,按图片名称检查图片是否存在。 注:需要定义web服务器url重写规则。通过请求的文件名称转换为实际的请求路径。 比如:http://image.test.cn/38b8c2c1093dd0fec383a9d9ac940515.jpg 转换为 : http://image.test.cn/3/8/38b8c2c1093dd0fec383a9d9ac940515.jpg http://image.test.cn/38b8c2c1093dd0fec383a9d9ac940515.jpg/80/120 转换为 : http://image.test.cn/3/8/38b8c2c1093dd0fec383a9d9ac940515_80_120.jpg 1.存在: 1.返回图片给浏览器 2.不存在: 2.将访问请求转发给应用服务,由应用程序处理用户请求 3.应用服务接收图片访问请求 1.检查原图片是否存在 1.存在: 1.按请求参数处理图片。比如 压缩为 80*120 2.将处理后的图片保存到对应文件目录。(调用图片上传处理流程中的图片保存方法。 数据记录部分使用原图片对应的客户端token) 3.返回图片给浏览器 2.不存在: 1.返回 404 给浏览器 4.客户端删除图片 1.验证客户端token ,如果不对,返回异常。 2.从数据库记录中检查客户端与图片关联关系是否存在。(检查规则:使用文件名称 + 客户端token 模糊搜索。 目的是找出类似 38b8c2c1093dd0fec383a9d9ac940515_80_120.jpg 图片记录) 1.存在: 1.标记所有数据记录为“已删除” 2.告知客户端删除成功 2.不存在: 1.告知客户端图片不存在 ### 更新说明 ### #### 2016/1/28 17:21:17 #### - 增加处理逻辑 #### 2016/1/29 10:11:48 #### - 调整处理逻辑(上传流程) - 增加框架说明 - 增加项目svn地址、测试服务器访问地址说明 #### 2016/1/29 10:50:27 #### - 项目增加scm配置,支持maven 命令执行svn更新。 mvn scm:update