CN108197281A - 基于Nginx服务器的图片处理方法、存储介质、设备及系统 - Google Patents

基于Nginx服务器的图片处理方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN108197281A
CN108197281A CN201810023299.0A CN201810023299A CN108197281A CN 108197281 A CN108197281 A CN 108197281A CN 201810023299 A CN201810023299 A CN 201810023299A CN 108197281 A CN108197281 A CN 108197281A
Authority
CN
China
Prior art keywords
picture
goal standard
specifications parameter
target photo
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810023299.0A
Other languages
English (en)
Inventor
马勇
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810023299.0A priority Critical patent/CN108197281A/zh
Publication of CN108197281A publication Critical patent/CN108197281A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/54Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于Nginx服务器的图片处理方法、存储介质、设备及系统,涉及互联网应用开发技术领域,Nginx服务器接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;Nginx服务器调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片,并将目标图片请求重定向到目标规格图片路径上。本发明实现高效生成目标规格图片,节省系统存储成本。

Description

基于Nginx服务器的图片处理方法、存储介质、设备及系统
技术领域
本发明涉及互联网应用开发技术领域,具体涉及一种基于Nginx服务器的图片处理方法、存储介质、设备及系统。
背景技术
目前移动设备尺寸日趋多样化,图片浏览逐渐成为移动应用(手机Web和手机客户端)用户体验至关重要的一环。由于业务场景和产品形态的不同,对于图片的分辨率、画质要求相差很大,很难用一套图片满足所有的业务场景和产品形态。
为满足这些个性化的需求,传统的做法是为不同尺寸的移动设备在不同业务场景和产品形态上预先生成不同规格,即不同大小,质量,旋转度数的图片,当用户使用移动设备浏览图片时,根据不同的浏览场景展现不同规格的图片。但这种方案有以下几个弊端:
1、随着浏览场景的不断调整变化,图片规格也需要重新生成,系统的开发维护成本较高。
2、由于需要存储大量不同规格的图片,造成系统本身的存储成本也比较高。
3、大多数非热点数据,即不是大多数用户经常浏览的信息,因而消耗了大量的存储成本。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Nginx服务器的图片处理方法、存储介质、设备及系统,高效生成目标规格图片,节省系统存储成本。
为达到以上目的,本发明采取的技术方案是:一种基于Nginx服务器的图片处理方法:
Nginx服务器接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;
Nginx服务器调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片,并将目标图片请求重定向到目标规格图片路径上。
在上述技术方案的基础上,Nginx服务器调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;若合法,再调用Bash脚本根据目标图片原始路径、图片规格参数和目标规格图片路径生成目标规格图片;若不合法,返回存在错误。
在上述技术方案的基础上,Nginx服务器将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。
在上述技术方案的基础上,Lua脚本根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值。
本发明还公开了一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现基于Nginx服务器的图片处理方法。
本发明还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序:处理器执行计算机程序时实现基于Nginx服务器的图片处理方法。
本发明还公开了一种基于Nginx服务器的图片处理系统,包括:
图片路径拼接模块,其用于接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;
目标规格图片生成模块,其用于调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片;
重定向模块,其用于将目标图片请求重定向到目标规格图片路径上。
在上述技术方案的基础上,所述目标规格图片生成模块用于调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;若合法,再调用Bash脚本根据目标图片原始路径、图片规格参数和目标规格图片路径生成目标规格图片;若不合法,返回存在错误。
在上述技术方案的基础上,所述目标规格图片生成模块用于将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。
在上述技术方案的基础上,所述目标规格图片生成模块用于根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值。
与现有技术相比,本发明的优点在于:
(1)采用的比较轻量的Lua脚本,高效生成目标规格图片,且无须存储大量不同规格的图片,节省系统存储成本。且可根据不同业务的不同形态自定义分辨率、缩放形式,仅仅需要重定位的只是目标规格图片请求地址,减轻Nginx服务器开发维护成本。
(2)目标规格图片在第一次生成完毕以后,保存在本地或Nginx服务器中。下次再有相同的目标规格图片请求,Nginx服务器会直接返回,无须再次调用Lua脚本生成图片。
(3)根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值,参数的顺序即使错乱,也不会影响组件的运行。
附图说明
图1为本发明实施例中基于Nginx服务器的图片处理方法的流程示意图;
图2为本发明实施例中基于Nginx服务器的图片处理系统的结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
术语说明:
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
Lua脚本:Lua是一个小巧的脚本语言,Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。轻量级Lua语言的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快,从而适合嵌入在别的程序里。5.0.2版的Lua的内核小于120KB,而Python的内核大约860KB,Perl的内核大约1.1MB。
参见图1所示,本发明实施例提供一种基于Nginx服务器的图片处理方法:
S1,Nginx服务器接收浏览器或客户端发起的目标规格图片请求,目标规格图片请求中包括目标图片原始路径目标和图片规格参数;
S2,Nginx服务器根据url规则从目标规格图片请求中解析出目标图片原始路径和图片规格参数,并使用目标图片原始路径和图片规格参数拼接成目标规格图片路径;
S3,Nginx服务器根据目标规格图片路径判断目标规格图片是否存在,若存在,进入步骤S7,若不存在,进入步骤S4;
S4,Nginx服务器调用Lua脚本解析出图片规格参数的数值,调用Bash脚本执行GraphicsMagick命令,结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片;
S5,Nginx服务器调用Lua脚本发起重定向请求,将目标规格图片请求引导至Bash脚本生成的目标规格图片路径上;
S6,Nginx服务器判断重定向后的目标规格图片请求对应的目标规格图片是否存在;进入步骤S7,若不存在,进入步骤S8;
S7,返回目标图片,结束;
S8,返回存在错误,结束。
本发明采用的比较轻量的Lua脚本,高效生成目标规格图片,且无须存储大量不同规格的图片,节省系统存储成本。且可根据不同业务的不同形态自定义分辨率、缩放形式,仅仅需要重定位的只是目标规格图片请求地址,减轻Nginx服务器开发维护成本。
浏览器或客户端向Nginx服务器发起目标规格图片请求如下:
http://xxx.xxxx.com/M00/9F/DF/Cg2DPlNSO4yRe7TFAAAzSdBc8Zc48---ge200x333_ro0_qu95_rt0_gt0.jpeg
其中ge200x333_ro0_qu95_rt0_gt0.为目标规格参数,说明如下:
ge:目标分辨率。
ro:旋转的度数。
qu:图片画质
rt:旋转类型,标识强制旋转还是自适应旋转(自适应旋转由高和宽的关系来决定)
gt:缩放类型,如:等比缩放,根据高缩放,根据最大边缩放等等。
上述过程具体实现如下:
1)浏览器或者客户端发起图片请求,请求中带有固定规则的图片参数标识,当图片请求到达文件服务器时,服务器根据URL的规则分析出原始图片路径和图片规格参数,从而拼接出目标规格图片路径。
2)根据目标规格图片路径判断目标规格图片是否存在;如果存在,则服务器直接返回目标规格图片请求,响应状态码为200,图片请求结束;反之,目标规格图片不存在,则尝试调用Lua脚本,生成目标规格图片。
3)Lua脚本根据特定的分割符规则(英文下划线)分割目标规格参数,解析出各项参数集合,再根据每个规格参数特定的前缀标识,分割获取各项图片参数的key和value,(如分辨率是240x320等等)生成目标规格参数key-value集合。实现即使参数的顺序即使错乱,也不会影响组件的运行。
4)Nginx服务器调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;如果不合法,则认为是恶意或者非法请求,直接返回404状态,结束请求;反之,则调用Bash脚本,并传递原始图片路径、目标规格图片路径以及解析出的目标规格参数key-value集合,以生成目标规格图片。验证目标规格图片请求中的图片规格参数是否合法可避免图片规格参数存在错误影响目标规格图片生成结果。
5)Bash脚本根据原始图片路径、目标规格参数key-value集合以及目标规格图片路径,拼接成命令语句,并执行命令生成目标规格图片。
6)Lua脚本在调用Bash脚本完成以后,发起重定向请求,将用户请求引导向生成的目标规格图片路径上。
7)Nginx接收重定向,如果目标规格图片存在,则返回目标规格图片,响应状态码为200;反之,目标规格图片不存在,响应状态码为404,直接结束请求。
8)Nginx服务器将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。下次再有相同的目标规格图片请求,Nginx服务器会直接返回,无须再次调用Lua脚本生成图片。
本发明实施例还公开了一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现基于Nginx服务器的图片处理方法。
本发明实施例还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现基于Nginx服务器的图片处理方法。
参见图2所示,本发明实施例还公开了一种基于Nginx服务器的图片处理系统,包括:
图片路径拼接模块,其用于接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;
目标规格图片生成模块,其用于调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片;
重定向模块,其用于将目标图片请求重定向到目标规格图片路径上。
目标规格图片生成模块用于调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;若合法,再调用Bash脚本根据目标图片原始路径、图片规格参数和目标规格图片路径生成目标规格图片;若不合法,返回存在错误,避免图片规格参数存在错误影响目标规格图片生成结果。
目标规格图片生成模块用于将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。下次再有相同的目标规格图片请求,Nginx服务器会直接返回,无须再次调用Lua脚本生成图片。
目标规格图片生成模块用于根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值,实现即使参数的顺序即使错乱,也不会影响组件的运行。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种基于Nginx服务器的图片处理方法,其特征在于:
Nginx服务器接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;
Nginx服务器调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片,并将目标图片请求重定向到目标规格图片路径上。
2.如权利要求1所述的一种基于Nginx服务器的图片处理方法,其特征在于:Nginx服务器调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;若合法,再调用Bash脚本根据目标图片原始路径、图片规格参数和目标规格图片路径生成目标规格图片;若不合法,返回存在错误。
3.如权利要求1所述的一种基于Nginx服务器的图片处理方法,其特征在于:Nginx服务器将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。
4.如权利要求1所述的一种基于Nginx服务器的图片处理方法,其特征在于:Lua脚本根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值。
5.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至4任一项所述的方法。
6.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:处理器执行计算机程序时实现权利要求1至4任一项所述的方法。
7.一种基于Nginx服务器的图片处理系统,其特征在于,包括:
图片路径拼接模块,其用于接收浏览器或客户端发起的目标规格图片请求,根据url规则解析客户端发出的目标图片请求,得到目标图片原始路径和目标图片规格参数,并将目标图片原始路径和目标图片规格参数组合成目标规格图片路径;
目标规格图片生成模块,其用于调用Lua脚本解析出图片规格参数的数值,调用Bash脚本结合目标图片原始路径和目标图片规格参数在目标规格图片路径位置生成目标规格图片;
重定向模块,其用于将目标图片请求重定向到目标规格图片路径上。
8.如权利要求7所述的一种基于Nginx服务器的图片处理系统,其特征在于:所述目标规格图片生成模块用于调用Lua脚本解析出图片规格参数的数值后,调用Lua脚本根据预设的图片规格参数白名单验证目标规格图片请求中的图片规格参数是否合法;若合法,再调用Bash脚本根据目标图片原始路径、图片规格参数和目标规格图片路径生成目标规格图片;若不合法,返回存在错误。
9.如权利要求7所述的一种基于Nginx服务器的图片处理系统,其特征在于:所述目标规格图片生成模块用于将Bash脚本生成的目标规格图片保存在本地或Nginx服务器中。
10.如权利要求7所述的一种基于Nginx服务器的图片处理系统,其特征在于:所述目标规格图片生成模块用于根据每个图片规格参数特定的前缀标识,分割获取各项图片规格参数的数值。
CN201810023299.0A 2018-01-10 2018-01-10 基于Nginx服务器的图片处理方法、存储介质、设备及系统 Pending CN108197281A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810023299.0A CN108197281A (zh) 2018-01-10 2018-01-10 基于Nginx服务器的图片处理方法、存储介质、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810023299.0A CN108197281A (zh) 2018-01-10 2018-01-10 基于Nginx服务器的图片处理方法、存储介质、设备及系统

Publications (1)

Publication Number Publication Date
CN108197281A true CN108197281A (zh) 2018-06-22

Family

ID=62588654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810023299.0A Pending CN108197281A (zh) 2018-01-10 2018-01-10 基于Nginx服务器的图片处理方法、存储介质、设备及系统

Country Status (1)

Country Link
CN (1) CN108197281A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109585000A (zh) * 2018-12-25 2019-04-05 贵阳朗玛信息技术股份有限公司 医用胶片的打印方法、装置及系统
CN110032699A (zh) * 2019-03-11 2019-07-19 北京智游网安科技有限公司 一种网页数据获取方法、智能终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561082A (zh) * 2013-10-30 2014-02-05 北京奇虎科技有限公司 压缩请求的处理方法及服务器
CN104954448A (zh) * 2015-05-29 2015-09-30 努比亚技术有限公司 图片处理方法、系统和服务器
CN106844600A (zh) * 2017-01-16 2017-06-13 百融(北京)金融信息服务股份有限公司 一种网站图片处理系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561082A (zh) * 2013-10-30 2014-02-05 北京奇虎科技有限公司 压缩请求的处理方法及服务器
CN104954448A (zh) * 2015-05-29 2015-09-30 努比亚技术有限公司 图片处理方法、系统和服务器
CN106844600A (zh) * 2017-01-16 2017-06-13 百融(北京)金融信息服务股份有限公司 一种网站图片处理系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林巧等: "Lua语言在轻量级Web服务器设计中的应用", 《计算机系统应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109585000A (zh) * 2018-12-25 2019-04-05 贵阳朗玛信息技术股份有限公司 医用胶片的打印方法、装置及系统
CN109585000B (zh) * 2018-12-25 2023-06-30 贵阳朗玛信息技术股份有限公司 医用胶片的打印方法、装置及系统
CN110032699A (zh) * 2019-03-11 2019-07-19 北京智游网安科技有限公司 一种网页数据获取方法、智能终端及存储介质

Similar Documents

Publication Publication Date Title
US10515142B2 (en) Method and apparatus for extracting webpage information
US20120210243A1 (en) Web co-navigation
CN107124430B (zh) 页面劫持监控方法、装置、系统和存储介质
US10666709B2 (en) Dynamic media transformation service in a CDN
CN107070858A (zh) 一种业务处理方法及装置
CN104102537A (zh) 一种应用调用方法及用户终端
CN110798445B (zh) 公共网关接口测试方法、装置、计算机设备及存储介质
CN107911483A (zh) 一种信息传输方法和装置
CN106126693A (zh) 一种网页的相关数据的发送方法及装置
CN106503111B (zh) 网页转码方法、装置及客户终端
CN107547213B (zh) 一种业务规则的识别方法及装置
CN113076153B (zh) 一种接口调用方法和装置
CN113382083A (zh) 一种网页截图方法和装置
CN108197281A (zh) 基于Nginx服务器的图片处理方法、存储介质、设备及系统
CN104869135A (zh) 数据交互的方法和终端
CN112015383A (zh) 一种登录方法和装置
CN109816462A (zh) 一种发票信息的识别方法及装置
CN104978207A (zh) 上传文件的方法和浏览器及系统
CN105959383A (zh) 内容订阅方法和装置
CN104182402A (zh) 浏览器界面地址栏输入控制方法及系统
US11328030B2 (en) Systems and methods of generating or updating a design based on a universal resource locator (URL)
CN112990991B (zh) 合并开发票的方法和装置
CN114745146A (zh) 跳转拦截方法、装置、可读存储介质及设备
CN104572959A (zh) 一种通讯录信息的加载方法及装置
CN108737133A (zh) 用于cdn静态网络修复的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180622