系统简介

最近做了一个简单图片系统,这个系统就是 将上传的的图片保存到系统本地文件系统或者基于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/ 。
 

上传及查看图片流程

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

后记

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

.Net简单图片系统-简介的更多相关文章

  1. .Net简单图片系统-使用说明

    使用说明 1. 从github上获取代码,并部署到IIS中,应用程序池选择4.0. 2. 打开配置文件,在AppSettings中,设置SaveMode模式,如果选择的Distributed模式,需要 ...

  2. .Net简单图片系统-本地存储和分布式存储

    本地存储 所谓本地存储就是将上传图片保存到图片服务器的本地磁盘上. if (ConfigHelper.GetConfigString("SaveMode") == "Lo ...

  3. CMS系统简介(从简介到使用)

    CMS系统简介 1.简介 CMS是Content Management System的缩写,意为"内容管理系统". 在中国互联网的发展历程中,一直以来默默地为中国站长提供动力的CM ...

  4. "浅谈Android"第一篇:Android系统简介

    近来,看了一本书,名字叫做<第一行代码>,是CSDN一名博主写的,一本Android入门级的书,比较适合新手.看了书之后,有感而发,想来进行Android开发已经有一年多了,但欠缺系统化的 ...

  5. Apache Flume日志收集系统简介

    Apache Flume是一个分布式.可靠.可用的系统,用于从大量不同的源有效地收集.聚合.移动大量日志数据进行集中式数据存储. Flume简介 Flume的核心是Agent,Agent中包含Sour ...

  6. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  7. Linux磁盘系统——磁盘系统简介

    Linux磁盘系统——磁盘系统简介 摘要:本文主要学习了Linux系统中有关磁盘的一些知识. 文件系统 说明 硬盘是用来存储数据的,可以将其想象成柜子,只不过柜子是用来存储衣物的.新买来的硬盘,通常要 ...

  8. Redis入门很简单之一【简介与环境搭建】

    Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件  [Redis简介] <一>. NoSQL ...

  9. 基于Python PIL实现简单图片格式转化器

    基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...

随机推荐

  1. HTTP请求工具类

    HTTP请求工具类,适用于微信服务器请求,可以自测 代码; /// <summary> /// HTTP请求工具类 /// </summary> public class Ht ...

  2. 0007《SQL必知必会》笔记03-汇总与分组数据

    1.有些时候需要数据的汇总值,而不是数据本身,比如对某些数据求和.计数.求最大最小值.求平均值,因此就有了5个聚集函数:AVE().COUNT().MAX().MIN().SUM(): (1)求平均值 ...

  3. 将treeview控件内容导出图片

    项目中有一项需求,需要将项目中的treeview控件展示的树状结构直接导成一张图片.网上方法很多,但很多都是屏幕截屏,我的解决思路是新建一个用户控件,将主窗体的Treeview的数据传给用户控件(不要 ...

  4. Bubble Sort [ASM-MIPS]

    # Program: Bubble sort # Language: MIPS Assembly (32-bit) # Arguments: 5 unordered numbers stored in ...

  5. 【原】css实现两端对齐的3种方法

    说到两端对齐,大家并不陌生,在word.powerpoint.outlook等界面导航处,其实都有一个两端对齐(分散对齐)的按钮,平时使用的也不多,我们更习惯与左对齐.居中对齐.右对齐的方式来对齐页面 ...

  6. Miller-Rabin素数快速检测

    满足费马小定理 a^(n-1) === 1(mod n) --->伪素数       对于所有a belong Zn*,总存在满足的合数n,称为Carmichael数 ------------- ...

  7. jsp前三章测试

    (选择一项) A: B: C: D: 正确答案是 B ,B/S架构并不是C/S架构的替代品,有些程序例如大型的网络游戏一般使用的是C/S架构. (选择多项) A: B: C: D: 正确答案是 A,C ...

  8. 转: YAML 语言教程 from(阮一峰)

    YAML 语言教程 from: http://www.ruanyifeng.com/blog/2016/07/yaml.html

  9. 为什么那么多人想开发一元夺宝类app?

    别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...

  10. 使用tcp_probe时最初没有输出,先卸载后加载模块之后就有了。

    刚才尝试使用tcp_probe来查看tcp的窗口的变化,最初按照tcpprobe | The Linux Foundation的步骤进行设置,但是iperf之后tcp_probe并没有输出结果.按照t ...