[发明专利]一种文件上传方法及装置有效
申请号: | 201610852953.X | 申请日: | 2016-09-27 |
公开(公告)号: | CN107743137B | 公开(公告)日: | 2020-03-17 |
发明(设计)人: | 王海龙;陈峥;张力;姜凤波;王楠;刘德刚 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 黄威 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 上传 方法 装置 | ||
本发明实施例公开了一种文件上传方法及装置,文件上传方法包括:接收客户端发送的文件上传请求,所述文件上传请求中包含完整文件内容;解析所述文件上传请求,并将解析得到的数据流片段存入缓存;当所述缓存中存入的数据流片段的大小达到预设阈值时,调度进程里的微线程将缓存中的数据流片段写入存储模块,重复该步骤,直至将所述完整文件内容的所有数据流片段写入存储模块。本发明实施例能够减小缓存压力,提高上传性能。
技术领域
本发明实施例涉及通信技术领域,具体涉及一种文件上传方法及装置。
背景技术
对象存储服务,通常是指客户端通过超文本传送协议(Hypertext transferprotocol,HTTP)的推送请求上传文件至存储服务器,客户端向公共网关接口(CommonGateway Interface,CGI)发送推送请求,在推送请求的主体里携带完整的文件内容,CGI程序缓存到文件内容后再写入到存储,现有的CGI框架的设计,通常需要在缓存到推送请求主体内的完整文件内容后才将内容转发给CGI进程来处理,当文件很大时,框架就需要缓存巨大的文件内容,这样很容易导致内存爆掉;另外,一个CGI进程同时只能处理一个请求,很容易造成输入输出(Input Output,IO)接口阻塞,当遭遇IO接口阻塞时,现有技术往往通过粗暴增加CGI进程数的方式来解决,而一个接一个CGI进程这种简单粗暴的解决方式,会给服务器带来巨大的压力,高并发时很容易引起服务器的卡死,速度慢甚至故障等异常现象,严重影响上传性能。
发明内容
有鉴于此,本发明实施例提供了一种文件上传方法及装置,能够减小缓存压力,提高上传性能。
本发明实施例提供的文件上传方法,包括:
接收客户端发送的文件上传请求,所述文件上传请求中包含完整文件内容;
解析所述文件上传请求,并将解析得到的数据流片段存入缓存;
当所述缓存中存入的数据流片段的大小达到预设阈值时,调度进程里的微线程将缓存中的数据流片段写入存储模块,重复该步骤,直至将所述完整文件内容的所有数据流片段写入存储模块。
本发明实施例提供的文件上传装置,包括:
接收单元,用于接收客户端发送的文件上传请求,所述文件上传请求中包含完整文件内容;
解析单元,用于解析所述文件上传请求,并将解析得到的数据流片段存入缓存;
调度单元,用于当所述缓存中存入的数据流片段的大小达到预设阈值时,调度进程里的微线程将缓存中的数据流片段写入存储模块,重复该步骤,直至将所述完整文件内容的所有数据流片段写入存储模块。
本发明实施例中,在接收到客户端发送的文件上传请求之后,可以解析所述文件上传请求,并将解析得到的数据流片段存入缓存,当所述缓存中存入的数据流片段的大小达到预设阈值时,调度进程里的微线程将缓存中的数据流片段写入存储模块,以此重复,直至将完整文件内容的所有数据流片段写入存储模块。由于在本发明实施例中,文件内容可以分段上传,使得缓存中每次只需要缓存预设阈值大小的数据流片段,而无需缓存完整的文件内容,所以,可以减少内存占用,减小缓存压力;另外,由于进程里采用了微线程的设计模式,即一个进程里可以包括多个微线程,使得当该进程的某个微线程遭遇IO阻塞时,可以调用其他微线程继续进行处理,因此,相对于现有技术方案而言,可以大大提升高并发时的应对能力,减少系统态的进程数,减少系统资源的占用,以及提高了上传性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例所提供的文件上传方法的一个场景示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610852953.X/2.html,转载请声明来源钻瓜专利网。