CN109617996A - 文件上传及下载方法、服务器及计算机可读存储介质 - Google Patents
文件上传及下载方法、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109617996A CN109617996A CN201910007215.9A CN201910007215A CN109617996A CN 109617996 A CN109617996 A CN 109617996A CN 201910007215 A CN201910007215 A CN 201910007215A CN 109617996 A CN109617996 A CN 109617996A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- request
- default
- upload request
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1055—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及数据处理,提供一种文件上传方法,该方法包括:第一服务器接收用户发送的文件上传请求后,对文件上传请求的合规性进行判断,若不合规,则直接拒绝该文件上传请求;对于通过合规性判断的文件上传请求,判断第二服务器集群的负载是否较高,若是,则基于预设限流限速规则将文件上传请求传输至第二服务器,供第二服务器进行文件上传处理。本发明还提供一种文件下载方法、服务器及计算机存储介质。利用本发明,可以提高文件上传、下载的效率,提高系统的稳定性,提升用户的使用体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种文件上传及下载方法、服务器及计算机可读存储介质。
背景技术
互联网发展迅速,已成为人们生活的重要组成部分和人类文明传播发展的重要载体,渗透到经济、政治、文化、社会生活各个方面,改变着人们的交往方式和思维方式。
对于面向互联网对象存储而言,高并发的文件上传/下载请求会导致一个调用方影响其他调用方的情况,从而降低用户的体验。
发明内容
鉴于以上内容,本发明提供一种文件上传及下载方法、服务器及计算机可读存储介质,其主要目的在于通过降低并发之间的影响,提高文件上传、下载的效率,提高系统的稳定性,提升用户的使用体验。
为实现上述目的,本发明提供一种文件上传方法,该方法包括:
S1、所述第一服务器接收用户发送的携带待上传文件的文件上传请求,根据第一预设判断规则判断所述文件上传请求是否被禁止;
S2、若判断所述文件上传请求被禁止,则拒绝该文件上传请求,并生成提示信息反馈给用户;
S3、若判断所述文件上传请求未被禁止,则根据第二预设判断规则判断是否需要对所述文件上传请求执行限流限速;
S4、若需要对所述文件上传请求执行限流限速,则基于预设限流限速规则将所述文件上传请求传输到第二服务器,并接收第二服务器反馈的上传结果,并将所述上传结果反馈给用户。
此外,为实现上述目的,本发明还提供一种文件下载方法,该方法包括:
A1、所述第一服务器接收用户发送的文件下载请求,根据预设禁止判断规则判断所述文件下载请求是否被禁止;
A2、若判断所述文件下载请求被禁止,则拒绝该文件下载请求,并生成提示信息反馈给用户;
A3、若判断所述文件下载请求未被禁止,则根据预设查询规则从预设存储路径中查找所述待下载文件对应的缓存文件;
A4、当存在所述缓存文件时,将所述缓存文件作为待下载文件反馈给用户;当不存在所述缓存文件时,根据预设限流限速判断规则判断是否需要对所述文件下载请求执行限流限速,若是,基于预设限流限速规则将所述文件下载请求传输到第二服务器,并接收第二服务器反馈的下载结果,并将所述下载结果反馈给用户。
此外,本发明还提供一种第一服务器,该第一服务器包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的文件上传/下载程序,所述文件上传/下载程序被所述处理器执行时,可实现如上所述文件上传/下载方法中的任意步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括文件上传/下载程序,所述文件上传/下载程序被处理器执行时,可实现如上所述文件上传/下载方法中的任意步骤。
本发明提出的文件上传及下载方法、服务器及计算机可读存储介质,接收用户发送的文件上传请求后,对文件上传请求的合规性进行判断,若不合规,则直接拒绝该文件上传请求;对于通过合规性判断的文件上传请求,判断当前第二服务器的负载是否较高,若是,则基于预设限流限速规则将文件上传请求传输至第二服务器,供第二服务器进行文件上传处理。通过直接拒绝不合规请求,有效减少系统压力,提高文件上传请求的处理效率;当系统较繁忙时,通过对合规的请求进行限流限速处理,有效保证系统的稳定性及用户的使用体验。
附图说明
图1为本发明文件上传及下载系统1较佳实施例的示意图;
图2为本发明文件上传方法较佳实施例的流程图;
图3为图1中第一服务器较佳实施例的示意图;
图4为图3中文件上传程序较佳实施例的程序模块示意图;
图5为本发明文件下载方法较佳实施例的流程图;
图6为本发明第一服务器另一个较佳实施例的示意图;
图7为图6中文件下载程序较佳实施例的程序模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1所示,为本发明文件上传及下载系统1较佳实施例的示意图。
所述文件上传及下载系统可以只包括:第一服务器集群2、第二服务器集群3。
所述第一服务器集群2中每台第一服务器21用于接收用户通过客户端(图中未标出)发出的文件上传/下载请求,对请求执行是否禁止判断及是否限流限速判断,并将符合条件的请求按照一定的规则发送至第二服务器31,供第二服务器31执行文件上传/下载操作。本实施例中,所述第一服务器21为NGINX服务器。
此外,所述第一服务器21还接受第二服务器31反馈的处理结果并发送至客户端。
所述第二服务器集群3中每台第二服务器31用于接收第一服务器21分配的文件上传/下载请求,并执行文件上传/下载操作。本实施例中,所述第二服务器31可以是IOBS文件服务器。
所述文件上传及下载系统还可以包括:负载均衡设备4。
所述负载均衡设备4用于接收用户通过客户端发出的文件上传/下载请求,并将文件上传/下载请求均衡地分配给第一服务器集群2中的每台第一服务器21。
参照图2所示,为本发明文件上传方法较佳实施例的流程图。该方法由图1中第一服务器集群2中任意一台第一服务器21包括的软件和硬件配合执行。
在本实施例中,该方法包括步骤S10-S40。
步骤S10,所述第一服务器接收用户发送的携带待上传文件的文件上传请求,根据第一预设判断规则判断所述文件上传请求是否被禁止。
以下均以第一服务器(例如,NGINX服务器)作为执行主体对本发明实施例进行说明。
步骤S20,若判断所述文件上传请求被禁止,则拒绝该文件上传请求,并生成提示信息反馈给用户。
其中,用户指业务系统粒度的用户,例如,淘宝、京东等。
文件上传请求中包括用户的属性信息、待上传文件的属性信息及其他参数信息等数据。例如,用户的属性信息包括:用户名、对应的IP及对应的桶名(bucket)等,待上传文件的属性信息包括:待上传文件的文件名及大小等。
文件上传请求可通过负载均衡设备基于预设的负载均衡规则分配至NGINX服务器集群中的每台NGINX服务器。
本实施例中,预设的负载均衡规则可以包括:
根据预设第一服务器列表中各第一服务器的排序,按照轮询的方式,依次将所述一条或多条文件上传请求分配给各第一服务器;其中,预先确定第一服务器集群中各第一服务器的排序,生成第一服务器列表,依次按照第一服务器中各第一服务器的顺序,将文件上传请求分配给各第一服务器;或者
分别实时统计各第一服务器对应的负载数量,将所述请求分配给负载数量最少的第一服务器;其中,所述负载数量可以是待处理请求数量,实时或定时统计每个第一服务器的待处理请求数量,将上传请求分配给待处理指令数量最少的第一服务器,以均衡各第一服务器的负载;或者
依次接收各第一服务器反馈的请求完成结果,按照反馈时间对各第一服务器进行排序,根据排序顺序依次将请求分配给各第一服务器;当某个第一服务器完成请求(并不限于上传请求)后,主动去获取请求资源进行处理,这样可以有效地进行资源分配。
优选地,本实施例中的所述第一预设判断规则为禁止判断规则,其包括:
从所述文件上传请求中获取用户的属性信息,将属性信息与预设的黑名单进行比对,当黑名单中存在该用户的属性信息时,判断所述文件上传请求被禁止;当黑名单中不存在该用户的属性信息时,判断所述文件上传请求未被禁止。
其中,预先设置的黑名单保存在预设数据库中,例如,redis。黑名单中包括被禁止的用户名、IP信息、桶名(bucket)等信息中的任意一种。
进一步地,所述第一预设判断规则还包括:
统计所述用户在第一预设时间内(例如,5s内)的发出文件上传请求的请求频率(即,发出请求的次数),当请求频率超过预设请求频率阈值(例如,1000)时,判断所述文件上传请求被禁止;当请求频率未超过预设请求频率阈值时,判断所述文件上传请求未被禁止。
可以理解的是,当用户在一定时间内请求频率过高,认为用户存在恶意攻击的可能,为了保证系统的安全性,需禁止该类请求。例如一个用户,在一台机器上5秒内连续发起上千次文件上传或者文件下载的请求,正常情况下,这不是正常人力能操作的,可能受到攻击,故直接禁止该用户发出的请求。
需要说明的是,若确定该用户为特殊情况,该用户发出的文件上传请求为正常请求,NGINX服务器将会对该文件上传请求进行限速处理,例如,将原来的正常传输速度(假设是500kb/s),降低10倍后传输速度为50kb/s,调整传输速度之后原来的5秒上传千次请求,将变成50秒上传千次请求。
进一步地,所述第一预设判断规则还包括:
获取所述文件上传请求的参数信息,根据所述参数信息判断请求是否为正规请求,若是正规请求,判断所述文件上传请求未被禁止;若是非正规请求,判断所述文件上传请求被禁止。
例如,文件上传请求的参数信息包括:请求header、请求url串等信息。例如,若请求header中包含JSON_*,或者请求URL串中包含CODE*等,判断请求为非正规请求,判断请求被禁止。
可选地,所述文件上传请求需满足以上条件中的任意一个、或者任意两个,或者三个的组合。所述预设禁止判断规则同时适用于文件上传请求及文件下载请求。
步骤S30,若判断所述文件上传请求未被禁止,则根据第二预设判断规则判断是否需要对所述文件上传请求执行限流限速。
为了提高系统的稳定性,对系统的负载情况进行判断,若负载过高,则对后续的上传请求进行限流限速。若否负载正常,则按照默认网络宽带将文件上传请求传输到第二服务器(例如,IOBS文件服务器),供第二服务器执行文件上传操作。
具体地,所述第二预设判断规则为限流限速判断规则,其包括:
定时或实时计算所述第二服务器集群的负载,当负载超过预设负载阈值(例如,60%)时,判断需要执行限流限速;当负载未超过预设负载阈值时,判断不需要执行限流限速。
其中,第二服务器集群的负载C计算公式如下:
式中,Lt为第二服务器集群的实时链接数,LMAX为第二服务器集群的最大并发数。其中,第二服务器集群的最大并发数LMAX的计算公式为:
LMAX=S×LiMAX
式中,S为第二服务器集群中第二服务器的数量,S为正整数,LiMAX指单台第二服务器的最大并发数。
并发是指每一个第二服务器能承载的同时访问的个数,由于第二服务器集群中第二服务器的数量有限,每台第二服务器的最大并发数可预先测试并设置好,因此整个系统(即,IOBS文件服务器集群)最大的并发有限。
步骤S40,若需要对所述文件上传请求执行限流限速,则基于预设限流限速规则将所述文件上传请求传输到第二服务器,并接收第二服务器反馈的上传结果,并将所述上传结果反馈给用户。
优选地,本实施例中的所述预设限流限速规则包括:
a1、根据所述用户的属性信息确定对应的桶名(bucket),统计第二预设时间(例如,1min)内所述桶名(bucket)对应的链接总数;
a2、当所述链接总数大于或等于所述桶名(bucket)对应的预设链接数阈值时,拒绝所述文件上传请求;
a3、当所述链接总数小于所述桶名(bucket)对应的预设链接数阈值时,根据所述待上传文件的属性信息确定所述待上传文件的文件大小,判断所述待上传文件的文件大小是否大于或等于预设阈值;
a4、若是,则按照预设比例的默认网络带宽将所述文件上传请求传输至第二服务器;若否,则按照默认网络带宽将所述文件上传请求传输至第二服务器。
在本实施例中,所述桶名(bucket)对应的预设链接数阈值为实时或定时(每隔1min)计算的,具体地,所述链接数阈值通过以下步骤确定:
b1、计算所述第一服务器在第三预设时间内的平均并发数,实时统计链接所述第一服务器的所有桶名(bucket)的数量,根据所述平均并发数及所述所有桶名(bucket)的数量计算所述第一服务器的预估并发数T;
其中,所述第一服务器的预估并发数T的的计算公式为:
T=N×M
式中的N为当前链接所述第一服务器的桶名(bucket)的数量,M为第三预设时间(例如,30s)内所述第一服务器每个单位时间(例如,1秒)的平均并发数。例如,所述平均并发数M的计算公式为:
M=过去30s内分配至所述第一服务器上的请求总数/30
b2、确定所述第一服务器对应的最大并发数,根据所述最大并发数、所述预估并发数及预设计算规则,计算第三预设时间内所述文件上传请求对应的桶名(bucket)对应的第一权重;
b3、基于所述平均并发数、所述第一权重及所述文件上传请求对应的桶名(bucket)对应的预设的第二权重,计算所述文件上传请求对应的桶名(bucket)对应的链接数阈值。
具体地,所述预设计算规则为第一权重的计算规则,其包括:
c1、当预估并发数T大于所述第一服务器的最大并发数时,第一权重的计算公式为:
c2、当预估并发数T小于或等于所述第一服务器的最大并发数时,所述第一权重的计算公式为:
其中,第一权重值大于0且小于1。所述最大并发数为预先测试并设置保存的,第一服务器的数量为第一服务器集群中第一服务器的总数。
需要说明的是,不同的桶名(bucket)对应的第一权重相同。
所述文件上传请求对应的桶名(bucket)的第二权重为预先确定的。例如,预先设置不同的桶名(bucket)对应的等级(例如,配置值1-10),不同等级对应不同的第二权重。其中,第二权重的计算公式为:
式中,Bi为第i个桶名(bucket)对应的第二权重,Ki为第i个桶名(bucket)对应的配置值。
需要说明的是,当桶名(bucket)的数量大于或等于10时才进行权重配置,当桶名(bucket)的数量小于10时不进行权重设置,即,默认Bi为1。
通过上述步骤确定第一权重、第二权重后,计算所述文件上传请求对应的桶名(bucket)对应的链接数阈值,计算公式为:
Ri=Ai×Bi×M
式中,Ri为第i个桶名(bucket)对应的链接数阈值,Ai为第i个桶名(bucket)对应的第一权重,Bi为第i个桶名(bucket)对应的第二权重。
利用上述步骤计算得到所述文件上传请求对应的桶名(bucket)对应的链接数阈值,可以理解的是,各桶名(bucket)对应的链接数阈值在确定后一定时间内不变,例如,1min。
可以理解的是,若第二预设时间内的所述文件上传请求对应的桶名(bucket)对应的链接总数超过链接数阈值时,为了保证其他桶名(bucket)对应的请求的处理效率,直接拒绝当前的文件上传请求。
进一步地,若第二预设时间内的所述文件上传请求对应的桶名(bucket)对应的链接总数小于链接数阈值,当待上传文件的文件大小超过预设阈值(例如,100M)时,按照默认网络带宽的预设比例(例如,50%)进行传输。其中,预设阈值及预设比例可根据需要进行调整。通过对过大的待上传文件进行网络流量控制,保证其他待上传文件的正常传输,提高其他用户的使用体验。
需要说明的是,第一服务器(NGINX服务器)将所述待上传文件请求分配至第二服务器(IOBS文件服务器)时,也需要负载均衡,例如,根据第二服务器集群中各第二服务器的负载进行合理分配,具体地负载均衡规则与上述负载均衡设备遵循的负载均衡规则大致相同,这里不作赘述。
当IOBS文件服务器将待上传文件上传完毕后,基于上传结果生成提示信息反馈给用户,例如,文件上传成功。当IOBS文件服务器将待上传文件上传失败时,基于上传结果生成提示信息反馈给用户,例如,文件上传失败。
上述实施例提出的文件上传方法,接收用户发送的文件上传请求后,对文件上传请求的合规性进行判断,若不合规,则直接拒绝该文件上传请求;对于通过合规性判断的文件上传请求,判断当前第二服务器集群的负载是否较高,若是,则基于预设限流限速规则将文件上传请求传输至第二服务器,供第二服务器进行文件上传处理。通过直接拒绝不合规请求,有效减少系统压力,提高文件上传请求的处理效率;当系统较繁忙时,通过对合规的请求进行限流限速处理,有效保证系统的稳定性及用户的使用体验。
在其他实施例中,所述文件上传方法还包括:
所述文件服务器在上传并保存待上传文件时,第一服务器确定待上传文件的标识信息,判断预设存储路径中(NAS卷)是否存在与待上传文件的标识信息相同的历史文件,若是,则用所述待上传文件替换所述历史文件,若否,则不执行替换操作。
待上传文件的标识信息包括待上传文件对应的桶名(bucket)及文件唯一标识(key),例如,待上传文件的文件唯一标识可以是待上传文件的通用唯一识别码(Universally Unique Identifier,UUID)。当判断预设数据库中存在bucket/key与待上传文件bucket/key相同的历史文件时,用待上传文件覆盖历史文件。存储地址不会变化,因为bucket唯一,且bucket中的key唯一。
除了对数据库中的历史文件进行更新之外,还需要查询NAS卷中是否存在与待上传文件对应的历史文件,若是,则将NAS卷中的该历史文件删除。其中,NAS(NetworkAttached Storage,网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
上述实施例提出的文件上传方法,通过将NAS卷作为文件缓存区,对文件缓存区中缓存的文件进行更新,保证了后续文件下载/及查询的准确性,并有助于提高后续文件下载/查询的效率。
参照图3所示,为图1中第一服务器21较佳实施例的示意图。
在本实施例中,第一服务器21可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器。
该第一服务器21包括存储器211、处理器212,及网络接口213。
其中,存储器211至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器211在一些实施例中可以是所述第一服务器21的内部存储单元,例如该第一服务器21的硬盘。
存储器211在另一些实施例中也可以是所述第一服务器21的外部存储设备,例如该第一服务器21上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器211还可以既包括该第一服务器21的内部存储单元也包括外部存储设备。
存储器211不仅可以用于存储安装于该第一服务器21的应用软件及各类数据,例如文件上传程序10等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器212在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器211中存储的程序代码或处理数据,例如文件上传程序10等。
网络接口213可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该第一服务器21与其他电子设备之间建立通信连接,例如,与负载均衡设备4、文件服务器3及客户端(图中未示出)进行数据传输。
图3仅示出了具有组件211-213的第一服务器21,本领域技术人员可以理解的是,图3示出的结构并不构成对第一服务器21的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
可选地,该第一服务器21还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。
可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以称为显示屏或显示单元,用于显示在第一服务器21中处理的信息以及用于显示可视化的用户界面。
参照图4所示,为图3中文件上传程序10较佳实施例的程序模块示意图。
文件上传程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器211中,并由一个或多个处理器(本实施例为处理器212)所执行,以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述文件上传程序10在第一服务器21中的执行过程。
在本实施例中,该文件上传程序10包括模块110-140,其中:
第一判断模块110,用于接收用户发送的携带待上传文件的文件上传请求,根据第一预设判断规则判断所述文件上传请求是否被禁止;
第一反馈模块120,用于若判断所述文件上传请求被禁止,则拒绝该文件上传请求,并生成提示信息反馈给用户;
第二判断模块130,用于若判断所述文件上传请求未被禁止,则根据第二预设判断规则判断是否需要对所述文件上传请求执行限流限速;
第二反馈模块140,用于若需要对所述文件上传请求执行限流限速,则基于预设限流限速规则将所述文件上传请求传输到第二服务器,并接收第二服务器反馈的上传结果,并将所述上传结果反馈给用户。
上述各模块实现的功能与上述文件上传方法实施例中的具体实施方式大致相同,这里不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括文件上传程序10,所述文件上传程序10被处理器执行时实现上述的文件上传方法中的任意步骤,在此不再赘述。
参照图5所示,为本发明文件下载方法较佳实施例的流程图。该方法由图1所示的第一服务器21包括的软件和硬件配合执行。
在本实施例中,该方法适用于第一服务器集群2中的任意一台第一服务器21,该方法可以只包括步骤A10-A40。
步骤A10,所述第一服务器接收用户发送的文件下载请求,根据预设禁止判断规则判断所述文件下载请求是否被禁止。
以下均以第一服务器(例如,NGINX服务器)作为执行主体对本发明实施例进行说明。
文件下载请求中包括用户的属性信息、待下载文件的属性信息及其他参数信息等数据。例如,用户的属性信息包括:用户名、对应的IP及对应的桶名(bucket)等,待下载文件的属性信息包括:待下载文件的文件名等。
步骤A20,若判断所述文件下载请求被禁止,则拒绝该文件下载请求,并生成提示信息反馈给用户。
其中,所述预设禁止判断规则与上述文件上传方法的实施例中第一预设判断规则的实施方式大致相同,这里不再赘述。
步骤A30,若判断所述文件下载请求未被禁止,则根据预设查询规则从预设存储路径中查找所述待下载文件对应的缓存文件。
优选地,本实施例中的所述预设查询规则包括:
根据所述文件下载请求中的待下载文件对应的文件唯一标识及预设算法(例如,hash算法),计算所述待下载文件的属性值(例如,hash值);
根据所述待下载文件的文件唯一标识及属性值从预设存储路径(例如,NAS卷)中查询是否存在与所述待下载文件的文件唯一标识相同的历史文件;
当存在与所述待下载文件的文件唯一标识相同的历史文件时,将所述历史文件作为所述待下载文件对应的缓存文件。
获取待下载文件对应的缓存文件后,基于所述缓存文件生成下载结果反馈给用户,例如,文件下载成功。
步骤A40,当存在所述缓存文件时,将所述缓存文件作为待下载文件反馈给用户;当不存在所述缓存文件时,根据预设限流限速判断规则判断是否需要对所述文件下载请求执行限流限速,若是,基于预设限流限速规则将所述文件下载请求传输到第二服务器,并接收第二服务器反馈的下载结果,并将所述下载结果反馈给用户。
其中,所述预设预设限流限速判断规则与上述文件上传方法的实施例中第二预设判断规则的实施方式大致相同,所述预设限流限速规则与上述文件上传方法的实施例中预设限流限速规则的实施方式大致相同,这里不再赘述。
当第二服务器(例如,IOBS文件服务器)从预设数据库中成功下载待下载待下文件时,基于下载结果及待下载文件生成提示信息反馈给用户,例如,文件下载成功。当第二服务器(例如,IOBS文件服务器)未从预设数据库中成功下载待下载文件时,基于下载结果生成提示信息反馈给用户,例如,文件下载失败。
在其他实施例中,该方法还包括:
所述第一服务器接收所述第二服务器反馈的所述待下载文件后,将所述待下载文件缓存到预设存储路径(例如,NAS卷)中。
需要说明的是,存储在预设存储路径中的文件有时效限制,一般为15min,可根据需求进行调整,若超过时效限制,则自动将文件从预设存储路径中抹除。具体地,缓存的时候根据待下载文件对应的桶名(bucket)、文件唯一标识、及属性值(hash值)进行缓存,即bucket/key的hashmap地址/文件,以便于第一服务器(例如,NGINX服务器)响应文件下载请求时查询。
上述实施例提出的文件下载方法,接收用户发送的文件下载请求后,对文件下载请求的合规性进行判断,若不合规,则直接拒绝该文件下载请求;对于通过合规性判断的文件下载请求;若合规,则直接从文件缓存区中查询是否有待下载文件对应的缓存文件(历史文件),若有,则直接取该缓存文件反馈给用户;若无,则判断当前第二服务器集群的负载是否较高,若是,则基于预设限流限速规则将文件下载请求传输至第二服务器,供第二服务器进行文件下载处理。通过直接拒绝不合规请求,有效减少系统压力,提高文件下载请求的处理效率;对于合规请求,直接从缓存区中取已有缓存文件,提高文件下载的效率,提升用户的使用体验;当系统较繁忙时,通过对合规的请求进行限流限速处理,有效保证系统的稳定性及用户的使用体验。
参照图6所示,为本发明第一服务器21另一个较佳实施例的示意图。
与图3所述的第一服务器21的区别在于,本实施例中的所述第一服务器21中的存储器211中还存储有文件下载程序20。
参照图7所示,为图6中文件下载程序20较佳实施例的程序模块示意图。
文件下载程序20还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器211中,并由一个或多个处理器(本实施例为处理器212)所执行,以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述文件下载程序20在第一服务器21中的执行过程。
在本实施例中,该文件下载程序20包括模块210-240,其中:
第三判断模块210,用于接收用户发送的文件下载请求,根据预设禁止判断规则判断所述文件下载请求是否被禁止;
第三反馈模块220,用于若判断所述文件下载请求被禁止,则拒绝该文件下载请求,并生成提示信息反馈给用户;
查询模块230,用于若判断所述文件下载请求未被禁止,则根据预设查询规则从预设存储路径中查找所述待下载文件对应的缓存文件;及
第四反馈模块240,用于当存在所述缓存文件时,将所述缓存文件作为待下载文件反馈给用户;当不存在所述缓存文件时,根据预设限流限速判断规则判断是否需要对所述文件下载请求执行限流限速,若是,基于预设限流限速规则将所述文件下载请求传输到第二服务器,并接收第二服务器反馈的下载结果,并将所述下载结果反馈给用户。
上述各模块实现的功能与上述文件下载方法实施例中的具体实施方式大致相同,这里不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括文件下载程序20,所述文件下载程序20被处理器执行时实现上述文件下载方法中的任意步骤,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种文件上传方法,应用于第一服务器,其特征在于,所述方法包括:
S1、所述第一服务器接收用户发送的携带待上传文件的文件上传请求,根据第一预设判断规则判断所述文件上传请求是否被禁止;
S2、若判断所述文件上传请求被禁止,则拒绝该文件上传请求,并生成提示信息反馈给用户;
S3、若判断所述文件上传请求未被禁止,则根据第二预设判断规则判断是否需要对所述文件上传请求执行限流限速;
S4、若需要对所述文件上传请求执行限流限速,则基于预设限流限速规则将所述文件上传请求传输到第二服务器,并接收第二服务器反馈的上传结果,并将所述上传结果反馈给用户。
2.根据权利要求1所述的文件上传方法,其特征在于,所述第一预设判断规则包括:
从所述文件上传请求中获取用户的属性信息,将属性信息与预设的黑名单进行比对当黑名单中存在该用户的属性信息时,判断所述文件上传请求被禁止;当黑名单中不存在该用户的属性信息时,判断所述文件上传请求未被禁止;或者
统计所述用户在第一预设时间内的发出文件上传请求的请求频率,当请求频率超过预设请求频率阈值时,判断所述文件上传请求被禁止;当请求频率未超过预设请求频率阈值时,判断所述文件上传请求未被禁止;或者
获取所述文件上传请求的参数信息,根据所述参数信息判断请求是否为正规请求,若是正规请求,判断所述文件上传请求未被禁止;若是非正规请求,判断所述文件上传请求被禁止。
3.根据权利要求1所述的文件上传方法,其特征在于,所述第二预设判断规则包括:
定时或实时计算预先确定的第二服务器集群的负载,当负载超过预设负载阈值时,判断需要执行限流限速;当负载未超过预设负载阈值时,判断不需要执行限流限速。
4.根据权利要求1所述的文件上传方法,其特征在于,所述预设限流限速规则包括:
根据所述用户的属性信息确定对应的桶名,统计第二预设时间内所述桶名对应的链接总数;
当所述链接总数大于或等于所述桶名对应的预设链接数阈值时,拒绝所述文件上传请求;
当所述链接总数小于所述桶名对应的预设链接数阈值时,根据所述待上传文件的属性信息确定所述待上传文件的文件大小,判断所述待上传文件的文件大小是否大于或等于预设阈值;
若是,则按照预设比例的默认网络带宽将所述文件上传请求传输至第二服务器;若否,则按照默认网络带宽将所述文件上传请求传输至第二服务器。
5.根据权利要求4所述的文件上传方法,其特征在于,所述链接数阈值通过以下步骤确定:
计算所述第一服务器在第三预设时间内的平均并发数,实时统计链接所述第一服务器的所有桶名的数量,根据所述平均并发数及所述所有桶名的数量计算所述第一服务器的预估并发数;
确定所述第一服务器对应的最大并发数,根据所述最大并发数、所述预估并发数及预设计算规则,计算第三预设时间内所述文件上传请求对应的桶名对应的第一权重;及
基于所述平均并发数、所述第一权重及所述文件上传请求对应的桶名对应的预设的第二权重,计算所述文件上传请求对应的桶名对应的链接数阈值。
6.根据权利要求5所述的文件上传方法,其特征在于,所述预估并发数的计算公式为:
T=N×M
式中的N为链接所述第一服务器的桶名的数量,M为第三预设时间内所述第一服务器每个单位时间的平均并发数;
所述预设计算规则为第一权重的计算规则,包括:
当预估并发数大于所述第一服务器的最大并发数时,第一权重的计算公式为:
当预估并发数T小于或等于所述第一服务器的最大并发数时,所述第一权重的计算公式为:
其中,第一权重值大于0且小于1。
7.根据权利要求1至6中任意一项所述的文件上传方法,该方法还包括:
所述第二服务器上传并保存待上传文件后,第一服务器确定待上传文件的标识信息,判断预设存储路径中是否存在与待上传文件的标识信息相同的历史文件,若是,则用所述待上传文件替换所述历史文件,若否,则不执行替换操作。
8.一种文件下载方法,应用于第一服务器,其特征在于,该方法包括:
A1、所述第一服务器接收用户发送的文件下载请求,根据预设禁止判断规则判断所述文件下载请求是否被禁止;
A2、若判断所述文件下载请求被禁止,则拒绝该文件下载请求,并生成提示信息反馈给用户;
A3、若判断所述文件下载请求未被禁止,则根据预设查询规则从预设存储路径中查找所述待下载文件对应的缓存文件;
A4、当存在所述缓存文件时,将所述缓存文件作为待下载文件反馈给用户;当不存在所述缓存文件时,根据预设限流限速判断规则判断是否需要对所述文件下载请求执行限流限速,若是,基于预设限流限速规则将所述文件下载请求传输到第二服务器,并接收第二服务器反馈的下载结果,并将所述下载结果反馈给用户。
9.一种第一服务器,其特征在于,该服务器包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的文件上传程序,所述文件上传程序被所述处理器执行时,可实现如权利要求1至7中任意一项文件上传方法中的任一步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括文件上传程序,所述文件上传程序被处理器执行时,可实现如权利要求1至7中任意一项文件上传方法中的任一步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007215.9A CN109617996B (zh) | 2019-01-04 | 2019-01-04 | 文件上传及下载方法、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007215.9A CN109617996B (zh) | 2019-01-04 | 2019-01-04 | 文件上传及下载方法、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109617996A true CN109617996A (zh) | 2019-04-12 |
CN109617996B CN109617996B (zh) | 2022-04-12 |
Family
ID=66016229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007215.9A Active CN109617996B (zh) | 2019-01-04 | 2019-01-04 | 文件上传及下载方法、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617996B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111405008A (zh) * | 2020-03-06 | 2020-07-10 | 精英数智科技股份有限公司 | 一种煤矿数据传输方法、装置及系统 |
CN112422604A (zh) * | 2020-06-10 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 文件上传方法、装置、系统及计算机设备 |
CN112418259A (zh) * | 2019-08-22 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种基于直播过程中用户行为的实时规则的配置方法、计算机设备及可读存储介质 |
CN112565358A (zh) * | 2020-11-25 | 2021-03-26 | 武汉联影医疗科技有限公司 | 文件上传的方法、装置、设备和存储介质 |
CN112751930A (zh) * | 2020-12-30 | 2021-05-04 | 平安普惠企业管理有限公司 | 文件下载控制方法、装置、计算机设备和存储介质 |
CN113190837A (zh) * | 2021-03-29 | 2021-07-30 | 贵州电网有限责任公司 | 一种基于文件服务系统的web攻击行为检测方法及系统 |
CN114006895A (zh) * | 2021-09-23 | 2022-02-01 | 银盛通信有限公司 | 一种高安全上传文件的方法 |
CN114374683A (zh) * | 2021-12-20 | 2022-04-19 | 上海金仕达软件科技有限公司 | 一种档案文件的管理方法、系统及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254274A1 (en) * | 2010-11-29 | 2013-09-26 | Tencent Technology (Shenzhen) Company Limited | Method, Device, and System for Downloading Games |
CN105208026A (zh) * | 2015-09-29 | 2015-12-30 | 努比亚技术有限公司 | 一种防止恶意攻击方法及网络系统 |
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
US20170359370A1 (en) * | 2016-06-10 | 2017-12-14 | Sophos Limited | Key throttling to mitigate unauthorized file access |
CN107483444A (zh) * | 2017-08-22 | 2017-12-15 | 北京邮电大学 | 一种智能电网信息传输安全防护装置及安全防护方法 |
CN108173938A (zh) * | 2017-12-28 | 2018-06-15 | 泰康保险集团股份有限公司 | 服务器负载分流方法及装置 |
CN108449607A (zh) * | 2018-01-18 | 2018-08-24 | 上海宝信软件股份有限公司 | 文件合规性检查方法和系统 |
CN108683631A (zh) * | 2018-03-30 | 2018-10-19 | 厦门白山耘科技有限公司 | 一种防止扫描权限文件的方法和系统 |
-
2019
- 2019-01-04 CN CN201910007215.9A patent/CN109617996B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254274A1 (en) * | 2010-11-29 | 2013-09-26 | Tencent Technology (Shenzhen) Company Limited | Method, Device, and System for Downloading Games |
CN105208026A (zh) * | 2015-09-29 | 2015-12-30 | 努比亚技术有限公司 | 一种防止恶意攻击方法及网络系统 |
US20170359370A1 (en) * | 2016-06-10 | 2017-12-14 | Sophos Limited | Key throttling to mitigate unauthorized file access |
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN107483444A (zh) * | 2017-08-22 | 2017-12-15 | 北京邮电大学 | 一种智能电网信息传输安全防护装置及安全防护方法 |
CN108173938A (zh) * | 2017-12-28 | 2018-06-15 | 泰康保险集团股份有限公司 | 服务器负载分流方法及装置 |
CN108449607A (zh) * | 2018-01-18 | 2018-08-24 | 上海宝信软件股份有限公司 | 文件合规性检查方法和系统 |
CN108683631A (zh) * | 2018-03-30 | 2018-10-19 | 厦门白山耘科技有限公司 | 一种防止扫描权限文件的方法和系统 |
Non-Patent Citations (2)
Title |
---|
XUWC: ""高并发系统限流-漏桶算法和令牌桶算法"", 《博客园 HTTPS://WWW.CNBLOGS.COM/XUWC/P/9123078.HTML》 * |
刘啸南: ""高性能网络流量控制系统的研究与设计"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418259A (zh) * | 2019-08-22 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种基于直播过程中用户行为的实时规则的配置方法、计算机设备及可读存储介质 |
CN112418259B (zh) * | 2019-08-22 | 2023-05-26 | 上海哔哩哔哩科技有限公司 | 一种基于直播过程中用户行为的实时规则的配置方法、计算机设备及可读存储介质 |
CN111405008A (zh) * | 2020-03-06 | 2020-07-10 | 精英数智科技股份有限公司 | 一种煤矿数据传输方法、装置及系统 |
CN112422604A (zh) * | 2020-06-10 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 文件上传方法、装置、系统及计算机设备 |
CN112422604B (zh) * | 2020-06-10 | 2023-02-17 | 上海哔哩哔哩科技有限公司 | 文件上传方法、装置、系统及计算机设备 |
CN112565358A (zh) * | 2020-11-25 | 2021-03-26 | 武汉联影医疗科技有限公司 | 文件上传的方法、装置、设备和存储介质 |
CN112751930A (zh) * | 2020-12-30 | 2021-05-04 | 平安普惠企业管理有限公司 | 文件下载控制方法、装置、计算机设备和存储介质 |
CN112751930B (zh) * | 2020-12-30 | 2022-11-25 | 平安普惠企业管理有限公司 | 文件下载控制方法、装置、计算机设备和存储介质 |
CN113190837A (zh) * | 2021-03-29 | 2021-07-30 | 贵州电网有限责任公司 | 一种基于文件服务系统的web攻击行为检测方法及系统 |
CN114006895A (zh) * | 2021-09-23 | 2022-02-01 | 银盛通信有限公司 | 一种高安全上传文件的方法 |
CN114374683A (zh) * | 2021-12-20 | 2022-04-19 | 上海金仕达软件科技有限公司 | 一种档案文件的管理方法、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109617996B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617996A (zh) | 文件上传及下载方法、服务器及计算机可读存储介质 | |
KR102320755B1 (ko) | 온-디바이스 기계 학습 플랫폼 | |
Yu et al. | Location-aware associated data placement for geo-distributed data-intensive applications | |
US7716660B2 (en) | Method and system for downloading updates | |
CN103391312B (zh) | 资源离线下载方法及装置 | |
US6792510B1 (en) | System and method for updating a cache | |
CN109246229A (zh) | 一种分发资源获取请求的方法和装置 | |
KR20200010480A (ko) | 온-디바이스 기계 학습 플랫폼 | |
CN110222500A (zh) | 版本管理方法、装置、设备及计算机可读存储介质 | |
US20130318536A1 (en) | Dynamic scheduling of tasks for collecting and processing data from external sources | |
WO2018201103A1 (en) | Iterative object scanning for information lifecycle management | |
US8761727B2 (en) | Method and apparatus for pre-caching in a telecommunication system | |
CN106254561B (zh) | 一种网络资源文件的实时离线下载方法及系统 | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN110457128B (zh) | 任务分配方法、装置和系统 | |
CN110417903A (zh) | 一种基于云计算的信息处理方法和系统 | |
CN109634916A (zh) | 文件存储及下载方法、装置及存储介质 | |
CN105245567A (zh) | 一种处理更新请求的方法和服务器系统 | |
CN109902103A (zh) | 业务数据管理方法、装置、设备及计算机可读存储介质 | |
CN106936907B (zh) | 一种文件处理方法、逻辑服务器、接入服务器及系统 | |
CN104125294A (zh) | 一种大数据安全管理方法和系统 | |
US20070174031A1 (en) | Method and device for taking an access control policy decision | |
CN105553671A (zh) | 一种数字证书的管理方法、装置及系统 | |
CN108183960A (zh) | 基于cdn的文件更新方法、服务器、存储介质及装置 | |
EP2905942B1 (en) | Application popularization method, device and system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |