【项目实战】--图片保存位置分析

简介: 小伙伴们在逛淘宝或者是京东的时候,都能看见一张张的图片,比如现在正值冬季,我们需要买一件羽绒服,打开淘宝,在搜索框中输入羽绒服,商家通过各种帅哥美女从不同的角度来展现羽绒服,通过一张张的图片从不同的侧面烘托各种羽绒服的细节,但是小伙伴们有没有思考过...

小伙伴们在逛淘宝或者是京东的时候,都能看见一张张的图片,比如现在正值冬季,我们需要买一件羽绒服,打开淘宝,在搜索框中输入羽绒服,商家通过各种帅哥美女从不同的角度来展现羽绒服,通过一张张的图片从不同的侧面烘托各种羽绒服的细节,但是小伙伴们有没有思考过,在编程实现的过程中,我们是如何处理图片的呢?图片保存到哪儿?用户如何访问图片?需要什么样的服务器?需要什么样的协议?那时年少,逛淘宝的时候,哪想到这么多,只是一心想着赶紧买到美美的衣服,美美的穿上,时光变迁,造化弄人,阴差阳错,鬼使神差,不知道前世怎么样的回眸与擦肩,让小编走上了coding这条路`(*∩_∩*)′。今天这篇博文,小编就来简单分析一下图片的保存位置,希望可以帮助到有需要的小伙伴们,不足之处,还请小伙伴们多多指教`(*∩_∩*)′。

上传图片,我们主要考虑一个问题,图片上传到哪儿了?图片保存的位置,没错,图片可以保存到数据库,但是存在数据库太慢了,用户体验不好,so,我们需要保存一个图片路径就ok了,我们首先来看一下传统的项目图片存储的位置,传统项目只有一个web工程,我们上传图片保存到哪儿呢?如下图所示:

                                               

这样存储的好处是,我们可以在jsp页面直接访问图片,工程名加上image图片文件名就可以直接访问图片了,直接放在WebRoot下面,我们可以在网页上直接访问。客户端做请求,用户上传图片,把图片保存到image文件夹,如果用户需要访问图片,直接访问/image/xxx.jpg,这样就可以直接访问到图片了,这就是我们的传统项目,如果图片太多,我们可以在linux系统中映射盘符,那么这个存储空间是可以进行扩展的,把上面的话转成图片的形式,如下所示:

                        

用户越来越多,并发量越来越大,一个tomcat支撑不住了,最简单的方法就是做tomcat集群,并发增加后,添加服务器,做tomcat集群,这个时候就不是一个tomcat了,我们来看一下现在的结构,如下图所示:

                

如上图所示,现在有两个tomcat,这个时候,我们前端需要一个负载均衡的服务器,由她来决定哪个tomcat为用户提供服务,现在用户做请求,有可能是tomcat1为用户提供服务,也有可能是tomcat1为用户提供服务,这时候,用户上传了一个图片,此时恰巧是tomcat1为用户提供服务,如上图所示,然后这个时候呢?用户又访问了一下图片,看看自己有没有把图片上传上去,第二次请求让tomcat2为用户提供服务,然后就去tomcat2找图片,找不到是不是,报了一个咱们再熟悉不过的错误404,用户不知道咋回事,我明明把图片上传上去了,为什么没有图片呢?真是见鬼!!!我们当然知道啦`(*∩_∩*)′,因为图片是上传到tomcat1上面了,当然找不着喽,那么我们该如何解决这个问题呢?总不能在出现这个问题的时候我们再思考如何解决,在设计阶段的时候,我们就需要考虑到这个问题,所以,在我们的集群环境中,存在这样的问题:有时候可以访问到图片,有时候访问不到,如何解决呢?我们肯定是有多台服务器的,那么我们把图片服务器弄成一台不就ok了吗?不管哪个tomcat需要上传图片,把这个图片都上传到图片服务器,增加一个图片服务器,如下图所示:

     

如上图所示,我们弄了一个图片服务器,是一个专门放置图片的服务器,我们访问图片通过http形式直接访问,so需要一个http服务,有了这个http服务器,我们就可以访问一个域名加上图片的路径,直接访问到图片了,那么这个服务我们如何实现呢?我们可以用tomcat,但是性能不是很高,我们可以使用apache,apache是一个组织,同时人家也是一个服务器哦`(*∩_∩*)′,当然现在比较流行的是nginx,现在nginx的名声已经远远大过apache,nginx可以实现反向代理,可是实现负载均衡,速度也是杠杠的`(*∩_∩*)′,我们可以选择nginx来实现我们的http服务,ok,我们的http服务用nginx,http可以让用户访问到,接下来面临的问题就是,我们如何把图片放上去呢?我们把图片上传到tomcat上,怎么样才能把图片弄到图片服务器上呢?我们可以采用ftp服务上传图片,ftp是一个协议我们使用linux自带的ftp服务器vsftpd。ok,博文介绍到这里,图片保存的位置分析就接近尾声了,在这里小编补充几点知识,http、ftp,详细讲解见下面:

http协议

http,英文名称HyperText Transfer protocol,是互联网上应用最为广泛的一种协议,所有的WWW文件都必须遵守这个标准,设计http最初的目的是为了提供一种发布和接收html页面的方法。http协议,是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。她不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。下图表明了这种请求/响应模型:

                        

ftp协议

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。简单来说,支持FTP协议的服务器就是FTP服务器,

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

小编寄语:该博文小编主要分析了图片的存储位置,简单来说需要两个步骤,第一步,上传图片;第二步,把图片上传到ftp服务器,对于tomcat2也是同样的操作,这个时候,图片就在服务器上,这个时候,我们就可以通过http服务访问图片了,直接访问ftp就ok了,这个时候tomcat1和tomcat2上面就没有图片了,so我们需要一个图片服务器上,另外小编还简单介绍了http协议和ftp协议,更多知识,还请小伙伴们自己百度谷歌哦`(*∩_∩*)′,在接下来的博文小编将介绍图片服务器的搭建,敬请期待`(*∩_∩*)′!


目录
相关文章
|
1月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
59 2
|
5月前
|
存储 Python
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
|
1月前
|
JSON 数据格式 计算机视觉
Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)
本文介绍了如何使用OpenCV和Python根据JSON标注文件获取并绘制目标区域,同时可将裁剪的图像单独保存。通过示例代码,展示了如何读取图片路径、解析JSON标注、绘制标注框并保存裁剪图像的过程。此外,还提供了相关的博客链接,供读者进一步学习。
35 0
|
5月前
|
文字识别 安全 API
印刷文字识别产品使用合集之不想通过读取图片二进制文件的方式来传入图片内容,如何进行图片内容识别
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
6月前
|
计算机视觉
OpenCV中读取、显示、保存图像及获取图像属性操作讲解及演示(附源码)
OpenCV中读取、显示、保存图像及获取图像属性操作讲解及演示(附源码)
342 0
|
小程序 API
小程序在获取当前位置信息在地图上显示
小程序在获取当前位置信息在地图上显示
169 0
|
安全 数据安全/隐私保护
文档的保存和打印
3.8 文档的保存与打印 3.8.1 防止文档内容丢失 1. 自动恢复 Word提供自动恢复功能,可在很大程度上避免因为停电、机器死机等问题引发的文档丢失现象。在“文件”选项卡中的“选项”命令,在其中的“保存”选项卡中设置,默认10分钟,可以修改(1-120分钟)。 2. 自动备份文档副本 在编辑Word文档时,如果不小心保存了不需要的信息,或者原文档损坏,可以使用文档备份的副本避免损失。当然,这需要你事先在Word系统设置了“始终创建备份副本”功能,具体操作如下: 1单击“文件”选项卡,选择“选项”命令,打开对话框设置。 2选择此选项可在每次保存文档时创建一个文档的备份副本扩展名为 .wbk
|
小程序 JavaScript 定位技术
微信小程序地图实现标记多个位置
微信小程序地图实现标记多个位置
299 0
|
存储 小程序
小程序图片上传,存储,获取,显示(含源码)
小程序图片上传,存储,获取,显示(含源码)
362 0
|
计算机视觉 Python
OpenCV学习笔记(一)【图片读入、显示、保存】
OpenCV学习笔记(一)【图片读入、显示、保存】
OpenCV学习笔记(一)【图片读入、显示、保存】