2 Star 2 Fork 2

danshijin / imgServer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
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

空文件

简介

图片服务器 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/danshijin/imgServer.git
git@gitee.com:danshijin/imgServer.git
danshijin
imgServer
imgServer
master

搜索帮助