.Net简单图片系统-简介

系统简介

最近做了一个简单图片系统,这个系统就是 将上传的的图片保存到系统本地文件系统或者基于fastdfs的分布式文件系统中,在查看图片时会直接请求此系统或者fastdfs的tracker服务器(需要nginx支持)。 这里支持本地和分布式是为了适应不同的需求,有些小系统,就仅仅需要一个保存图片的站点,图片也不多,所以没有必要用分布式文件系统。 
同时,图片的上传保存功能将不再耦合在业务站点中,而是在页面前端直接通过CORS上传到图片服务器上,图片服务器返回图片的绝对地址(http://image.xx.com/uplaod/11XX.jpg ),这个地址会保存在当前Form表单的一个Hidden中,最后这个地址再随其他信息一起提交到业务站点,当信息被展示的时候,图片直接请求http://image.xx.com/uplaod/11XX.jpg 。

开发简介

开发语言为C#。
开发工具包括Visual studio 2013, fastdfs, nginx,webuploader。
基本适用于所有的web站点。
项目开源, 已托管在https://github.com/zhaoyb/ImageServices/ 。
 

上传及查看图片流程

.Net简单图片系统-简介

1. 用户选择要上传的图片,图片不经过业务服务器,而是直接通过CORS的方式上传到图片服务器。
2. 图片服务器将上传的图片保存到本地或者FastDFS中,返回保存的图片地址。 
3. 图片地址随业务数据一起被提交到了业务站点。 
4. 用户浏览业务数据。
5. 如果业务数据中含有图片, 则直接请求图片服务器(如果图片是保存到图片服务器的本地磁盘)或者tracker服务器。
6. tracker服务器会请求storage服务器获取图片。 
 

后记

1. 除了将图片服务器架构在IIS上,如果有条件,可以将图片服务器架构在nginx上, 并开启缓存模块和zero copy模式。当然开发语言需要改为Java或者php。
2. 实现了基本的上传保存功能,但是对图片不同尺寸剪裁, 压缩, 加水印,防盗链等还没有实现。 
3. 本文说的是图片服务器, 但是对于小型的文件上传也可以采用这种方式 。 
 
 
上一篇:Python-字典、集合、字符编码、文件操作整理-Day3


下一篇:拖拽碰撞--原声js(自身理解上新的方法)