万花筒の图片服务 动静分离

原创
2016/01/27 16:31
阅读数 3.3K

image

几乎所有的开发者都做过图片上传,这个功能几乎应用于所有的系统。但是大部分人都是用别人封装好的,图片上传工具类或者上传服务,自己没有深入研究过具体实现。

 

目前常见的图片服务方案:

1.上传到云盘中,如:7牛,阿里OSS…

需要按照服务提供方提供的API定制化开发上传功能,然后通过网络URL访问,网络文件服务需要付费。

2.直接上传到当前项目的webapp下的某目录(EovaV1.5之前就是这样实现的)

项目重新部署,需要备份图片,否则就会被自动清理。部署完项目,图片就访问不到了。

3.上传到本机的指定目录中,并将该目录发布为静态服务器(EovaV1.5的实现方式)

需要部署两个服务,一个Web服务器,一个静态服务器,直接访问静态服务器获取图片。  
本方案是很多企业采用的方案,有两个好处:

  1. 重启部署之后,图片不会被清除

  2. 动静分离,减轻Web服务压力

 

下面我们先看一下如何用Tomcat发布静态服务:

1.下载Tomcat

2.修改Tomcat /conf/server.xml 在Host节点中加入Context,参考下面

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">  
        <Context path="/" docBase="D:\eova\static"/>    
</Host>

3.启动图片服务器,假设HTTP端口号为18080

 

Eova图片服务配置:

#图片服务域名(上面搭建的静态服务器的IP+端口)

domain_img = http://127.0.0.1:18080

#静态根目录(上面搭建的静态服务器docBase对应的目录)

static_root = D:/eova/static

首先将字段设置为图片框

然后元字段文件目录配置:需要手工修改数据库中的JSON配置(表:eova_field 字段:config)

{"filedir":"/image/product"}

 

So,经过如上配置,是为了下面两项

图片上传保存目录:(假设传的图片名为001.jpg)

D:/eova/static/image/product/001.jpg

图片服务实际访问URL:

http://127.0.0.1:18080/image/product/001.jpg

展开阅读全文
打赏
2
4 收藏
分享
加载中

引用来自“袁秋黎”的评论

直接使用自带的富文本编辑模块,更改eova_field 字段:config为{"filedir":"/image/product"}后,图片显示路径已经正常,但是上传图片路径是image\bucao\product,请问数据库还有其他地方要改吗?

引用来自“Jieven”的评论

这个上面讲的是图片框 不是 编辑框(富文本编辑) Eova1.5中富文本编辑 默认就是可以传图的,使用的是UEditor的默认配置
这个我没说清楚,上传图片是可以的,只是图片好像只会传到/image/bucao/product 这个目录下,按我的理解,更改eova_field 字段:config是可以修改这个上传路径的,但是我试了下,好像并不能。
2016/02/03 15:26
回复
举报
Eova博主

引用来自“袁秋黎”的评论

直接使用自带的富文本编辑模块,更改eova_field 字段:config为{"filedir":"/image/product"}后,图片显示路径已经正常,但是上传图片路径是image\bucao\product,请问数据库还有其他地方要改吗?
这个上面讲的是图片框 不是 编辑框(富文本编辑) Eova1.5中富文本编辑 默认就是可以传图的,使用的是UEditor的默认配置
2016/02/03 09:54
回复
举报
直接使用自带的富文本编辑模块,更改eova_field 字段:config为{"filedir":"/image/product"}后,图片显示路径已经正常,但是上传图片路径是image\bucao\product,请问数据库还有其他地方要改吗?
2016/02/02 15:43
回复
举报
Eova博主

引用来自“袁秋黎”的评论

请问
domain_img = http://127.0.0.1:18080
static_root = D:/eova/static
这两个配置应该写在什么地方?
domain.config 不知道的 可以利用关键字 全局搜索一下
2016/02/01 18:10
回复
举报
请问
domain_img = http://127.0.0.1:18080
static_root = D:/eova/static
这两个配置应该写在什么地方?
2016/02/01 16:59
回复
举报
更多评论
打赏
5 评论
4 收藏
2
分享
返回顶部
顶部