CN108540566A - 文件上传方法、装置、系统以及客户端和服务器 - Google Patents
文件上传方法、装置、系统以及客户端和服务器 Download PDFInfo
- Publication number
- CN108540566A CN108540566A CN201810351139.9A CN201810351139A CN108540566A CN 108540566 A CN108540566 A CN 108540566A CN 201810351139 A CN201810351139 A CN 201810351139A CN 108540566 A CN108540566 A CN 108540566A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- big file
- file
- data interval
- 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
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种文件上传方法、装置、系统以及客户端和服务器,该文件上传方法包括:生成大文件上传请求,所述大文件上传请求包括数据区间字段,所述数据区间字段用于携带完整的数据区间信息;通过HTTP协议,以POST方式向服务器发送所述大文件上传请求,以上传所述大文件。由于大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息。因此,在需要做断点续传时,可以在不需要客户端上传SDK,不增加客户端的任何负担的情况下,提供让客户端在上传中断的时候继续从上次上传的位置开始上传的机制。
Description
技术领域
本发明涉及文件传输技术领域,尤其涉及一种文件上传方法、装置、系统以及客户端和服务器。
背景技术
随着网络的高速发展,网民对互联网的要求越来越高,不再满足于原来的由互联网只是给用户呈现各种资讯内容,转而开始对互联网提出各种互动性的要求,例如上传头像、上传照片、上传附件等,传统站点对于此类普通的上传请求都比较容易处理,因为标准HTTP(HyperText Transfer Protocol,超文本传输协议)协议中的POST方法就可以满足需求。
互联网时代还有另外一类应用非常广的需求,即视频需求,用户可能想把视频上传到服务器上去,实现随时随地在线播放的要求,又或者可能就只是想把一些占用本地空间的视频放到云存储的服务器里进行托管,在需要的时候再从云存储上下载回来。虽然标准HTTP协议里提供了用来向HTTP服务器进行上传的POST方法,但是由于HTTP协议本身就是一种无状态的应用层传输协议,因此在做大文件上传时,如果是使用传统表单上传的方式,就很难保证用户上传的成功率,因为目前并没有一种可靠的机制来帮助HTTP协议做大文件的上传,这根本就不是HTTP协议本身的职责,HTTP协议是为web应用而生的,文件的上传有专门的FTP(File Transfer Protocol,文件传输协议)协议,所以要在HTTP协议中实现大文件的上传就只有通过应用层的逻辑来保证上传的可靠性。
因此,解决现有技术中大文件上传中存在的上述问题,是本领域亟待解决的问题。
发明内容
有鉴于此,本发明实施例所要解决的一个技术问题是:在做大文件上传时,由于HTTP本身的问题,很难保证用户上传的成功率的问题。本申请提供一种文件上传方法、装置、系统以及客户端和服务器。
所述文件上传方法,用于客户端,包括:
生成大文件上传请求,所述大文件上传请求包括数据区间字段,所述数据区间字段用于携带完整的数据区间信息。
通过HTTP协议,以POST方式向服务器发送所述大文件上传请求,以上传所述大文件。
可选地,所述方法还包括:
接收服务器发送的断点续传的通知消息;
向服务器发送获取所述大文件已上传的数据块的现场信息的查询请求,以请求服务器查询数据区间信息;所述查询请求包括数据区间字段,所述数据区间字段用于携带请求查询现场信息的标记符和完整的数据区间信息;
接收服务器发送的查询响应消息,所述查询响应消息包括数据区间字段,所述数据区间字段用于携带数据区间信息;其中,服务器未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;服务器完整接收所述大文件的数据时,所述数据区间信息表示完整接收数据的数据区间信息。
可选地,所述数据区间信息表示已接收数据的数据区间信息时,所述方法还包括:
根据所述数据区间信息,确定未成功发送的数据区间信息;
向服务器发送所述未成功发送的数据区间信息所对应的大文件中的部分数据。
可选地,所述方法还包括:
向服务器发送所述大文件对应的第一校验值,以便服务器根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
可选地,所述方法还包括:
接收服务器发送的表示上传是否成功的上传结果。
可选地,所述查询响应消息为HTTP 308消息;
所述表示完整接收数据的数据区间信息为缺省信息;
所述数据区间字段为Content-Range字段。
所述文件上传方法,用于服务器,包括:
通过HTTP协议,以POST方式接收客户端发送的大文件上传请求。
根据所述大文件上传请求,获取大文件,并写入存储空间。
根据写入结果,生成现场信息;所述现场信息包括数据区间信息,未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;完整接收数据时,所述数据区间信息表示完整接收所述大文件的数据的数据区间信息。
可选地,所述方法还包括:
在将大文件写入存储空间的过程进行时限监控。
在时限超时时,向客户端发送断点续传的通知消息。
接收客户端发送的获取所述大文件已上传的数据块的现场信息的查询请求。
向客户端反馈查询响应消息,所述查询响应消息包括数据区间字段,所述数据区间字段用于携带数据区间信息;其中,服务器未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;服务器完整接收所述大文件的数据时,所述数据区间信息表示完整接收数据的数据区间信息。
可选地,所述方法还包括:
接收客户端发送的所述大文件中的部分数据,所述大文件中的部分数据是由客户端根据确定出未成功发送的数据区间信息所对应发送的部分数据。
可选地,所述方法还包括:
接收客户端发送的所述大文件对应的第一校验值;
根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
可选地,所述方法还包括:
向客户端发送表示上传是否成功的上传结果。
可选地,所述查询响应消息为HTTP 308消息;
所述表示完整接收数据的数据区间信息为缺省信息。
所述文件上传装置,用于客户端,包括:
生成模块,用于生成大文件上传请求,所述大文件上传请求包括数据区间字段,所述数据区间字段用于携带完整的数据区间信息。
第一发送模块,用于通过HTTP协议,以POST方式向服务器发送所述大文件上传请求,以上传所述大文件。
所述文件上传装置,用于服务器,包括:
第一接收模块,用于通过HTTP协议,以POST方式接收客户端发送的大文件上传请求。
获取模块,用于根据所述大文件上传请求,获取大文件,并写入存储空间。
生成模块,用于根据写入结果,生成现场信息;所述现场信息包括数据区间信息,未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;完整接收数据时,所述数据区间信息表示完整接收所述大文件的数据的数据区间信息。
所述客户端,包括上述任一项用于客户端的装置。
所述服务器,包括上述任一项用于服务器的装置。
所述系统,包括上述客户端和服务器。
与现有技术相比,本发明实施例的文件上传方法、装置、系统以及客户端和服务器,实现了如下的有益效果:
本发明实施例的上述技术方案,由于大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息。因此,在需要做断点续传时,可以在不需要客户端上传SDK,不增加客户端的任何负担的情况下,提供让客户端在上传中断的时候继续从上次上传的位置开始上传的机制。
当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明实施例的文件上传方法的步骤流程图。
图2为本发明实施例的另一种文件上传方法的步骤流程图。
图3为本发明实施例的文件上传方法的断点续传部分的一个流程图。
图4为本发明实施例的另一种文件上传方法的步骤流程图。
图5为本发明实施例的另一种文件上传方法的步骤流程图。
图6为本发明实施例的文件上传方法中服务器接收上传数据的一个流程图。
图7为本发明实施例的文件上传方法中大文件分块上传部分的一个流程图。
图8为本发明实施例的另一种文件上传方法的步骤流程图。
图9为本发明实施例的另一种文件上传方法的步骤流程图。
图10为本发明实施例的文件上传装置的框图。
图11为本发明实施例的另一种文件上传装置的框图。
图12为本发明实施例的系统的网络架构图。
图13所示为本发明实施例提供的系统的上传时序图。
图14为本发明实施例提供的系统的模块设计示意图。
图15为本发明实施例提供的系统的断点续传时序图。
图16为本发明实施例提供的系统的线程模型示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
对于大文件的上传,现有技术中存在以下几种上传方式:
1、基于FTP协议上传,现有的FTP提供了一套标准的解决方案,但它有专门对应的应用场景,就是做文件存储,比如传统的FTP服务器都应用于文件的存档,而且都针对于大文件,另外由于FTP协议的延时性非常高并且不时地必须执行一些冗余的登录操作,因此能提供的应用也仅限于做文件下载,不能应用于一些对实时性要求比较高的场景,还有一个比较敏感的缺点就是用户登录的密码及文件内容在网络中都是用明文传输的,这会给用户带来风险。
2、基于HTTP协议中的POST方法的简单表单上传,在普通的页面表单提交中经常会用到这种上传方式,多用于用户通过浏览器访问网页的场景,该种上传方式所使用的Content-Type类型为application/x-www-form-urlencoded,这是POST方法使用的默认类型,属于HTTP协议Content-Type规范。简单表单上传应用范围很广,同时对于上传来说也很简单,因为它并不是用来做文件上传的,另外表单上传对数据的内容也有限制,比如它不能上传二进制数据的文件,因为表单上传需要用urlencoder对数据进行编码,而且还要用&将key-value键值对组织起来进行发送,因此不能拿简单的表单上传来做二进制文件上传。
3、基于HTTP协议中的POST方法的单个二进制文件上传,该种上传方式所使用的Content-Type类型为application/octet-stream,属于HTTP协议Content-Type规范。上传时,HTTP的body中直接保存的就是二进制数据,正好满足音视频及图片文件的上传需求。但这种上传方式一次只能上传一个文件,而且只能是二进制文件。
4、基于HTTP协议中的POST方法的多重编码的文件上传,使用多重编码的上传方式时需要指定Content-Type为multipart/form-data,RFC标准中对这种上传方式的定义是"one or more different sets of data are combined in a single body",这样就可以在一个http请求的body中将要上传的数据按不同的编码方式组织在一起,然后一次性提交给服务器。然而这种上传方式对HTTP的body内容的组织实现起来比较复杂。
经过以上的分析可知,用户如果要往服务器上传文件,是可以有多种选择的,但每种选择都有它的适用范围,即使符合了视频网站的上传文件需求,但由于视频网站是通过浏览器对用户提供服务在线视频点播和直播的服务,因此为了接口的一致性及兼容性,应该选择一种适应范围更广的协议来提供服务,本发明实施例提供的文件上传方法就是一种通过HTTP协议来适配所有主流终端用户的上传文件的方法。
又由于HTTP协议是一种无状态的应用层传输协议,客户端在上传时又是基于POST方法来实现,而POST请求有几个特性:1、POST请求不会被缓存;2、POST请求不会保留在浏览器历史记录中;3、POST不能被收藏为书签;4、POST请求对数据长度没有要求。所以当用户在上传某个非常大的文件时,如果中途由于某种原因(如断网或程序退出等)导致上传中断了,那么用户下次需要重新上传该文件。本发明实施例就提供了一种允许用户对大文件的上传的方法,而且该方法能够在不增加上传客户端的负担的情况下,提供让客户端在上传中断的时候继续从上次上传的位置开始上传的机制,提高了系统的兼容性和接口的一致性。下面将对本发明的具体实施例做出详细说明。
客户端
图1所示为本发明实施例1中一种文件上传方法的流程图,该方法应用于客户端,客户端例如可以是计算机、手机、掌上电脑等终端设备。如图1所示,该文件上传方法包括以下步骤S11-S12:
步骤S11,生成大文件上传请求,大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息。
首次上传时,该数据区间信息为大文件的完整数据区间。
步骤S12,通过HTTP协议,以POST方式向服务器发送大文件上传请求,以上传所述大文件。
本发明实施例的上述方法,通过生成大文件上传请求,大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息,通过HTTP协议,以POST方式向服务器发送大文件上传请求。由于大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息。因此,在需要做断点续传时,可以在不需要客户端上传SDK,不增加客户端的任何负担的情况下,提供让客户端在上传中断的时候继续从上次上传的位置开始上传的机制。
本实施例中的大文件可以是一个数据块,也可以是一个完整文件。例如大文件的大小为4M。数据区间信息可以精确到字节,本实施例有助于实现字节级的断点续传。
客户端向服务器上传大文件后,服务器将大文件写入本地存储介质。当服务器接收大文件或写入大文件的过程发生异常,导致未完整获得大文件时,可触发断点续传机制,重新获取丢失的数据,参见下面的实施例。
在一个实施例中,如图2所示,该文件上传方法还可包括以下步骤S13-S15:
步骤S13,接收服务器发送的断点续传的通知消息。
步骤S14,向服务器发送获取所述大文件已上传的数据块的现场信息的查询请求,以请求服务器查询数据区间信息;查询请求包括数据区间字段,数据区间字段用于携带请求查询现场信息的标记符和完整的数据区间信息。
步骤S15,接收服务器发送的查询响应消息,查询响应消息包括数据区间字段,数据区间字段用于携带数据区间信息;其中,服务器未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;服务器完整接收大文件的数据时,数据区间信息表示完整接收数据的数据区间信息。
图3为本发明实施例提供的文件上传方法中断点续传部分的一个流程图。用于客户端,如图3所示,断点续传的流程如下:
步骤S31,当大文件上传中断需要断点续传时,客户端向服务器发送查询请求,该查询请求用于请求获取该大文件已上传的数据块的现场信息。
用户因某些原因导致某次上传没有完成而需要继续上传时,先向服务器(具体可以是直播文件上传服务器,livefileupsrv)发送一次请求现场的http连接,使用http的POST方法,且http头中包含Content-Range:bytes*/fsize,其中的*号代表是请求现场信息。
步骤S32,客户端接收服务器以区间(Range)形式返回的已上传的数据块的现场信息。
直播文件上传服务器给用户回复当前正在上传的文件现场信息,在http头中以Range:bytes=xxx-xxx,xxx-xxx,xxx-的形式进行回复,其中xxx-指直到文件末尾。
步骤S33,根据已上传的数据块的现场信息计算出后续需要上传的数据区间信息。
步骤S34,确定计算出的后续需要上传的数据区间信息对应的大文件中的部分数据,对该部分数据进行断点续传。
用户获知已经上传的文件区间后,根据自己的情况继续后面的上传操作,使用http的POST方法进行上传,在http头中以Content-Range:bytes xxx-xxx/fsize表示当前要上传的数据区间,并在包体中带上实体数据。
步骤S35,判断该部分数据是否上传成功,是则转入步骤S36,否则结束。
步骤S36,判断该大文件是否上传完成,是则转入步骤S38,否则转入步骤S37。
步骤S37,接收服务器返回的206Partial Content。
直播文件上传服务器在整个大文件接收完成之前回复206Partial Content。
步骤S38,接收服务器返回的200OK以及hash值和视频元数据。
如果整个大文件都接收完成,服务器则返回200OK及以json格式返回资源的hash值和元数据信息。如果上传失败会有相应的http错误码返回。
如果用户在断点续传的场景下,没有事先请求当前已上传的数据块的现场信息而直接将数据上传上来,那么直播文件上传服务器将按Conetent-Range中指定的偏移位置把数据写入文件,若该位置之前已经有了数据,则会被覆盖。
在一个实施例中,查询响应消息为HTTP 308消息。
如果某个文件上传过程中失败了,那么在向服务器查询数据块的现场信息时,服务器会在回包中以json串的形式告诉用户当前服务器已经收到的部分数据区间,查询响应消息可以为HTTP 308消息。同时会在HTTP头中以Range字段告诉客户端当前收到的数据区间,前者是给用户看的,后者是给客户端程序读的,最后用户再用文件大小减掉这些已经上传完成的数据,得出还未上传完成的数据,然后再接着进行上传。
在一个实施例中,表示完整接收数据的数据区间信息为缺省信息。
当上传完成时,再向服务器查询上传现场信息时,服务器返回的json串为空,而且HTTP头中的Range字段也为空,说明已经没有数据需要上传了。
在一个实施例中,数据区间字段为Content-Range字段。
在一个实施例中,数据区间信息表示已接收数据的数据区间信息时,如图4所示,该文件上传方法还可包括以下步骤S15-S16:
步骤S15,根据数据区间信息,确定未成功发送的数据区间信息。
步骤S16,向服务器发送未成功发送的数据区间信息所对应的大文件中的部分数据。
本实施例,根据已接收数据的数据区间信息,确定未成功发送的数据区间信息,即根据已经上传的数据区间信息来计算后续需要上传的数据区间信息,进而确定后续需要上传到服务器的数据块。
可选的,所述方法还包括:
向服务器发送所述大文件对应的第一校验值,以便服务器根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
本实施例中可以在大文件上传请求中携带该第一校验值,该第一校验值可以通过MD5(第5摘要)算法获得,也可称为MD5值。可作为服务器判断是否完整且正确的获取大文件的判断依据。
可选的,所述方法还包括:
接收服务器发送的表示上传是否成功的上传结果。如果上传成功,可参见前述步骤S38。如果上传失败,会有相应的http错误码返回。
服务器在收到用户的数据块上传请求且解析成功后,查找对应的文件映射对象,在文件映射对象上映射一块偏移位置等于上传请求中的Content-Range的起始位置且大小等Content-Ragne大小的数据区间字段,然后将用户上传的块数据写入该数据区间中,写完后取消该次映射。如果整个文件写入完成,则关闭整个文件对象,通知校验线程生成文件MD5。出于安全考虑,对用户上传的每一块数据的MD5值进行校验,上传完成时计算整个文件的MD5。
本实施例,当该大文件由于某种原因上传中断时,只需向服务器查询已上传的数据块的现场信息,就可以做断点续传,该方法在不需要客户端上传SDK,不增加客户端的任何负担的情况下,提供让客户端在上传中断的时候继续从上次上传的位置开始上传的机制,提高了系统的兼容性和接口的一致性。
服务器端
图5所示为本发明实施例中一种文件上传方法的流程图,该方法应用于服务器,如图5所示,该文件上传方法包括以下步骤S51-S53:
步骤S51,通过HTTP协议,以POST方式接收客户端发送的大文件上传请求。
步骤S52,根据大文件上传请求,获取大文件,并写入存储空间。
步骤S53,根据写入结果,生成现场信息;现场信息包括数据区间信息,未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;完整接收数据时,数据区间信息表示完整接收大文件的数据的数据区间信息。
图6为本发明实施例提供的文件上传方法中服务器接收上传数据的一个流程图。该方法应用于服务器,如图6所示,服务器接收上传数据的流程如下:
步骤S61,收发线程收到用户上传的一个数据块(即一个大文件)。
步骤S62,校验线程开始校验该数据块的MD5值与用户传上来的MD5值是否一致,如果一致则转入步骤S63,如果不一致则结束。
步骤S63,由处理线程将校验后的数据写入磁盘同时更新数据库(DB)中的上传现场信息。
步骤S64,判断文件上传是否完成,是则转入步骤S65,否则转入步骤S61。
步骤S65,校验线程生成整个文件的MD5。
步骤S66,向直播文件管理器返回上传结果。
步骤S67,清理DB中该文件对应的上传现场信息。
步骤S68,向客户端返回现场结果。
本发明中的大文件是指可独立上传的数据块或数据包,现有技术可以将文件切为多个块分别上传。本发明是针对可独立上传的数据块,服务器可根据接收情况对数据块再分区间。客户端可对区间数据断点续传。
图7为本发明实施例提供的文件上传方法中大文件分块上传部分的一个流程图。用于服务器,如图7所示,大文件分块上传的流程如下:
步骤S71,服务器收到客户端的上传请求且验证通过。
步骤S72,根据文件标识(file id)检查当前上传文件是否已经上传完成。如果上传完成则结束,否则转入步骤S73。
步骤S73,接收客户端上传的当前数据块。
步骤S74,用文件映射和Content-length将该数据块写入到文件。
本发明实施例的上述方法,在将大文件写入存储空间后,根据写入结果,生成现场信息,在未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;完整接收数据时,数据区间信息表示完整接收大文件的数据的数据区间信息。从而可以简单、明了的确定出已上传到服务器的数据。
在一个实施例中,如图8所示,该文件上传方法还可包括以下步骤S54-S55:
步骤S54,在将大文件写入存储空间的过程进行时限监控。
步骤S55,在时限超时时,向客户端发送断点续传的通知消息。
本实施例,在将大文件写入存储空间的时限超时时,向客户端发送断点续传的通知消息。从而可以方便客户端及时进行断点续传。
在一个实施例中,如图9所示,该文件上传方法还可包括以下步骤S56-S57:
步骤S56,接收客户端发送的获取大文件已上传的数据块的现场信息的查询请求。
步骤S57,向客户端反馈查询响应消息,查询响应消息包括数据区间字段,数据区间字段用于携带数据区间信息;其中,服务器未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;服务器完整接收大文件的数据时,数据区间信息表示完整接收数据的数据区间信息。
在一个实施例中,查询响应消息为HTTP 308消息。
在一个实施例中,表示完整接收数据的数据区间信息为缺省信息。
本实施例,在接收到客户端发送的获取大文件已上传的数据块的现场信息的查询请求后,向客户端反馈查询响应消息。从而方便客户端获知已上传到服务器的数据。
可选的,所述方法还包括:
接收客户端发送的所述大文件中的部分数据,所述大文件中的部分数据是由客户端根据确定出未成功发送的数据区间信息所对应发送的部分数据。
客户端根据所述数据区间信息,确定未成功发送的数据区间信息;向服务器发送所述未成功发送的数据区间信息所对应的大文件中的部分数据。服务器接收客户端发送的所述大文件中的部分数据,与之前接收的数据结合,实现大文件的完整接收。
出于安全考虑,服务器可以对完整接收到的大文件进行校验,参见下面的实施例。
可选的,所述方法还包括:
接收客户端发送的所述大文件对应的第一校验值。
根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
服务器可以通过大文件上传请求接收客户端发送的所述大文件对应的第一校验值。在完整接收大文件后,根据预设的算法,针对该大文件计算出第二校验值,将所述第一校验值与所述第二校验值进行比对,如果比对一致,则确定大文件获取完整且正确。如果比对不一致,则确定大文件的数据有误。可以继续下面的实施例,向客户端发送表示上传是否成功的上传结果。当有多个大文件连续上传时,对一个大文件校验成功后,可以继续接收下一个大文件。所有大文件均完整接收后,可以再次对所有大文件进行一次校验,针对所有大文件生成MD5值并校验。向客户端发送表示上传是否成功的上传结果。
可选的,所述方法还包括:
向客户端发送表示上传是否成功的上传结果。
基于同一发明构思,本发明实施例还提供了一种文件上传装置,由于该装置所解决问题的原理与前述文件上传方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
图10所示为本发明实施例中一种文件上传装置的框图,用于客户端,如图10所示,该文件上传装置包括:生成模块101、第一发送模块102。
生成模块101,用于生成大文件上传请求,大文件上传请求包括数据区间字段,数据区间字段用于携带完整的数据区间信息。
第一发送模块102,用于通过HTTP协议,以POST方式向服务器发送大文件上传请求,以上传所述大文件。
可选地,该文件上传装置还包括:
第一接收模块,用于接收服务器发送的断点续传的通知消息;
第二发送模块,用于向服务器发送获取所述大文件已上传的数据块的现场信息的查询请求,以请求服务器查询数据区间信息;查询请求包括数据区间字段,数据区间字段用于携带请求查询现场信息的标记符和完整的数据区间信息。
第二接收模块,用于接收服务器发送的查询响应消息,查询响应消息包括数据区间字段,数据区间字段用于携带数据区间信息;其中,服务器未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;服务器完整接收大文件的数据时,数据区间信息表示完整接收数据的数据区间信息。
可选地,查询响应消息为HTTP 308消息。
可选地,表示完整接收数据的数据区间信息为缺省信息。
可选地,数据区间信息表示已接收数据的数据区间信息时,装置还包括:
确定模块,用于根据数据区间信息,确定未成功发送的数据区间信息。
第三发送模块,用于向服务器发送未成功发送的数据区间信息所对应的大文件中的部分数据。
可选地,数据区间字段为Content-Range字段。
可选地,所述装置还包括:
第四发送模块,用于向服务器发送所述大文件对应的第一校验值,以便服务器根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
可选地,所述装置还包括:
第三接收模块,用于接收服务器发送的表示上传是否成功的上传结果。
图11所示为本发明实施例中一种文件上传装置的框图,用于服务器,如图11所示,该文件上传装置包括:第一接收模块111、获取模块112以及生成模块113。
第一接收模块111,用于通过HTTP协议,以POST方式接收客户端发送的大文件上传请求。
获取模块112,用于根据大文件上传请求,获取大文件,并写入存储空间。
生成模块113,用于根据写入结果,生成现场信息;现场信息包括数据区间信息,未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;完整接收数据时,数据区间信息表示完整接收大文件的数据的数据区间信息。
可选地,该文件上传装置还包括:
监控模块,用于在将大文件写入存储空间的过程进行时限监控。
第一发送模块,用于在时限超时时,向客户端发送断点续传的通知消息。
可选地,该文件上传装置还包括:
第二接收模块,用于接收客户端发送的获取大文件已上传的数据块的现场信息的查询请求。
反馈模块,用于向客户端反馈查询响应消息,查询响应消息包括数据区间字段,数据区间字段用于携带数据区间信息;其中,服务器未完整接收大文件的数据时,数据区间信息表示已接收数据的数据区间信息;服务器完整接收大文件的数据时,数据区间信息表示完整接收数据的数据区间信息。
可选地,查询响应消息为HTTP 308消息。
可选地,表示完整接收数据的数据区间信息为缺省信息。
可选地,所述装置还包括:
第三接收模块,用于接收客户端发送的所述大文件中的部分数据,所述大文件中的部分数据是由客户端根据确定出未成功发送的数据区间信息所对应发送的部分数据。
可选地,所述装置还包括:
第四接收模块,用于接收客户端发送的所述大文件对应的第一校验值。
比对模块,用于根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
可选地,所述装置还包括:
第二发送模块,用于向客户端发送表示上传是否成功的上传结果。
本发明实施例还提供一种客户端,该客户端包括上述任一实施例中用于客户端的装置。
本发明实施例还提供一种服务器,该服务器包括上述任一实施例中用于服务器的装置。
本发明实施例还提供一种系统,包括上述的客户端和服务器。本系统的网络架构图如图12所示。图12为视频点播系统的一个网络架构图。其中,客户端的用户向服务器请求上传视频文件,Web服务器121接收客户端的上传请求后,向视频上传管理器(upmgr)123请求上传地址,为上传的视频文件分配上传服务器(upsrv)124,视频上传管理器123还负责负载均衡以及断点续传分配,Pub(Publisher)服务器122将上传的视频文件分发,上传完成时通知CDN系统。上传服务器124负责接收文件、断点续传时接收文件。
图13是本发明一实施例示出的系统的上传时序图,该系统为视频直播系统的上传时序图,如图13所示,具体流程如下:
步骤S1301,客户端申请上传直播文件。
步骤S1302,Web服务器向直播文件管理器请求上传地址。
步骤S1303,Web服务器将请求的上传地址返回客户端。
步骤S1304,直播文件管理器将上传地址写入直播文件数据库。
步骤S1305,客户端向直播文件上传服务器请求现场信息。
步骤S1306,直播文件上传服务器向客户端返回现场信息。
步骤S1307,客户端开始向直播文件上传服务器上传直播文件。
步骤S1308,直播文件上传服务器接收上传的文件并在上传完成时生成视频首图。
步骤S1309,直播文件上传服务器向直播文件管理器返回直播文件上传成功或失败的消息。
步骤S1310,直播文件上传服务器根据该消息更新直播文件数据库。
步骤S1311,上传成功则直播文件上传服务器向客户端返回视频元数据。
步骤S1312,主服务器(master)通知直播文件管理器删除频道。
在直播系统中,每上传一个文件,开通一个频道。
步骤S1313,直播文件管理器删除直播文件数据库信息。
步骤S1314,直播文件上传服务器向直播文件管理器同步所有频道列表。
步骤S1315,直播文件上传服务器删除频道。
步骤S1316,客户端通知直播文件上传服务器删除文件。
步骤S1317,直播文件上传服务器删除文件。
步骤S1318,直播文件上传服务器向客户端返回信息。
图14为本发明实施例提供的系统的一个模块设计示意图。该模块在上传服务器(upsrv)内实现。其中,收发线程收到上传请求,经校验线程进行校验,校验线程校验后,I/O线程向磁盘写入数据,完成后,再向数据库(DB)写入对应的现场信息。上传通知管理器从校验线程获得数据大小。区间序列中保存有客户端上传的数据的区间信息,上传通知管理器与上传文件映射管理器均可调用该信息。主要模块设计说明如下:
上传通知管理器
与数据库中的t_upinfo和t_upscene表对应的数据结构,主要用来操作数据库,保持内存和数据库中的数据的一致性,但在操作数据库的时候并没有用到事务。
上传文件映射管理器
写文件的对象管理器,考虑到直播文件上传服务器主要的工作就是文件I/O操作,而文件I/O一般性能都比较低下,因此在写文件时采用了文件映射的方式,具体执行过程是:
文件上传服务器在收到用户的上传请求且解析成功后,用key中的fileid在上传文件映射管理器中查找对应的文件映射对象,如果没有找到则创建出一个新的upfileiommap对象,且用key中的文件大小在磁盘上一次性把整个文件创建出来。
在文件映射对象上映射一块偏移位置等于上传请求中的Content-Range的起始位置且大小等Content-Ragne大小的数据区间,然后将用户上传的块数据写入该数据区间中,写完后取消该次映射。
如果整个文件写入完成,则关闭整个文件对象,通知校验线程生成文件MD5并上报直播文件管理器。
视频解析器
获取上传视频的时长及生成视频首图。
区间序列(Range Queue)
用来保存用户上传时的Content-Range及对Range的各种运算,包括并集、差集等,每个区间用一个Range表示,按照http协议标准该区间是闭区间。
图15为本发明实施例提供的系统的断点续传时序图。该过程也在上传服务器(upsrv)内实现。如图15所示,具体流程如下:
步骤S1501,客户端向服务器请求文件已上传的数据块的现场信息。
http头中包含Content-Range:bytes*/fsize,其中的*号代表是请求现场信息。
步骤S1502,服务器向客户端返回已上传的数据块的现场信息。
服务器向客户端返回已上传的数据块的现场信息,在http头中以Range:bytes=xxx-xxx,xxx-xxx,xxx-的形式进行回复,其中xxx-指直到文件末尾。
步骤S1503,客户端向服务器上传未上传的数据块。
使用http的POST方法进行上传,在http头中以Content-Range:bytes xxx-xxx/fsize表示当前要上传的数据区间,并在包体中带上实体数据。
步骤S1504,服务器将该数据块写入文件并校验数据。
步骤S1505,每上传一个数据块,服务器向客户端回复确认包。
回复确认包206Partial Content或4xx/5xx&errmsg等。
步骤S1504-S1505循环,直到上传文件的最后一个数据块。
步骤S1506,客户端向服务器上传最后一个数据块。
上传最后一个数据块,POST Content-Range:bytes xxx-/fsize
步骤S1507,服务器将最后一个数据块写入文件并校验数据。
步骤S1508,服务器向客户端回复确认包。
回复确认包200OK&hash。
图16为本发明实施例提供的系统的线程模型的一个工作流程图。如图16所示,具体流程如下:
步骤S1601,客户端向监听线程请求上传文件。
步骤S1602,监听线程将上述请求通知收发线程。
步骤S1603,收发线程将上传信息发送校验线程,由校验线程校验上传信息。
步骤S1604,校验线程向收发线程返回校验结果。
步骤S1605,收发线程将校验结果返回客户端,校验结果为允许或者拒绝用户上传文件。
步骤S1606,当允许客户端上传时,客户端向收发线程上传文件数据。
步骤S1607,校验线程校验接收到的数据。
步骤S1608,校验线程向收发线程返回校验结果。
步骤S1609,校验线程向处理线程写入校验后的数据。
步骤S1610,处理线程向磁盘写入文件。
步骤S1611,更新数据库中的上传现场信息。
步骤S1612,上传完成后生成文件的MD5以及视频首图。
步骤S1613,数据库在上传完成后清理现场信息。
步骤S1614,通知直播文件管理器上传完成。
步骤S1615,收发线程通知直播文件管理器上传完成。
步骤S1616,收发线程向客户端返回视频元信息。
步骤S1617,直播文件管理器通知收发线程删除文件。
步骤S1618,处理线程执行删除任务。
步骤S1619,处理线程通知磁盘删除文件。
步骤S1620,处理线程通知数据库删除数据库中的文件记录。
步骤S1621,处理线程向收发线程返回删除结果。
步骤S1622,收发线程向直播文件管理器返回删除结果。
由于底层库中每个线程都有自己的消息队列,因此在收到数据时可以把这个数据块以消息体的形式存放在每个线程的消息队列中,这样线程在处理数据时就可以直接从它的消息队列中取出消息进行处理(做校验或者写磁盘及更新数据库等),每一个步骤完成继续扔到后续线程的消息队列中保存等候处理。
线程功能说明:
1)监听线程:负责监听用户的上传请求。
2)收发线程:负责接收用户上传的数据以及向用户返回上传最后结果。
3)校验线程:
a.负责用户开始上传时对用户上传的基本信息做校验确定用户上传的有效性;
b.校验每一块数据的MD5值;
c.上传完成时计算整个文件的MD5。
4)长连接线程:
a.用户上传完成时向直播文件管理器(livefilemgr)返回上传结果;
b.接收livefilemgr发来的删除通知;
c.livefileupsrv向livefilemgr返回删除结果。
5)处理线程:
a.将校验线程校验通过的数据写入本地磁盘路径;
b.收到删除上传文件的通知后,去本地磁盘路径中将相应文件删除;
维护DB中的上传现场,在上传完成时清理现场。
图15为本发明实施例提供的系统的断点续传的流程图。对该流程图的说明如下:
a.用户因某些原因导致某次上传没有完成而需要继续上传时,先向直播文件上传服务器(livefileupsrv)发送一次请求现场信息的http连接,使用http的POST方法,且http头中包含Content-Range:bytes*/fsize,其中的*号代表是请求现场信息。
b.livefileupsrv给用户回复当前正在上传的文件现场信息,在http头中以Range:bytes=xxx-xxx,xxx-xxx,xxx-的形式进行回复,其中xxx-指直到文件末尾。
c.用户获知已经上传的文件区间后,根据自己的情况继续后面的上传操作,使用http的POST方法进行上传,在http头中以Content-Range:bytes xxx-xxx/fsize表示当前要上传的数据区间,并在包体中带上实体数据。
d.livefileupsrv在整个文件接收完成之前回复206Partial Content。
e.如果整个文件都接收完成,则返回200OK及以json格式返回资源的hash值和元数据信息。
f.如果上传失败会有相应的http错误码返回。
g.断开连接,结束用户的上传。
如果用户在断点续传的场景下,没有事先请求当前上传现场信息而直接将数据上传上来,那么livefileupsrv将按Conetent-Range中指定的偏移位置把数据写入文件,若该位置之前已经有了数据,则会被覆盖。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (17)
1.一种文件上传方法,用于客户端,其特征在于,包括:
生成大文件上传请求,所述大文件上传请求包括数据区间字段,所述数据区间字段用于携带完整的数据区间信息;
通过HTTP协议,以POST方式向服务器发送所述大文件上传请求,以上传所述大文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收服务器发送的断点续传的通知消息;
向服务器发送获取所述大文件已上传的数据块的现场信息的查询请求,以请求服务器查询数据区间信息;所述查询请求包括数据区间字段,所述数据区间字段用于携带请求查询现场信息的标记符和完整的数据区间信息;
接收服务器发送的查询响应消息,所述查询响应消息包括数据区间字段,所述数据区间字段用于携带数据区间信息;其中,服务器未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;服务器完整接收所述大文件的数据时,所述数据区间信息表示完整接收数据的数据区间信息。
3.根据权利要求2所述的方法,其特征在于,所述数据区间信息表示已接收数据的数据区间信息时,所述方法还包括:
根据所述数据区间信息,确定未成功发送的数据区间信息;
向服务器发送所述未成功发送的数据区间信息所对应的大文件中的部分数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向服务器发送所述大文件对应的第一校验值,以便服务器根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收服务器发送的表示上传是否成功的上传结果。
6.根据权利要求2所述的方法,其特征在于,所述查询响应消息为HTTP 308消息;
所述表示完整接收数据的数据区间信息为缺省信息;
所述数据区间字段为Content-Range字段。
7.一种文件上传方法,用于服务器,其特征在于,包括:
通过HTTP协议,以POST方式接收客户端发送的大文件上传请求;
根据所述大文件上传请求,获取大文件,并写入存储空间;
根据写入结果,生成现场信息;所述现场信息包括数据区间信息,未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;完整接收数据时,所述数据区间信息表示完整接收所述大文件的数据的数据区间信息。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在将大文件写入存储空间的过程进行时限监控;
在时限超时时,向客户端发送断点续传的通知消息;
接收客户端发送的获取所述大文件已上传的数据块的现场信息的查询请求;
向客户端反馈查询响应消息,所述查询响应消息包括数据区间字段,所述数据区间字段用于携带数据区间信息;其中,服务器未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;服务器完整接收所述大文件的数据时,所述数据区间信息表示完整接收数据的数据区间信息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收客户端发送的所述大文件中的部分数据,所述大文件中的部分数据是由客户端根据确定出未成功发送的数据区间信息所对应发送的部分数据。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收客户端发送的所述大文件对应的第一校验值;
根据收到的所述大文件生成第二校验值,将所述第一校验值与所述第二校验值进行比对,根据比对结果确定上传是否成功。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
向客户端发送表示上传是否成功的上传结果。
12.根据权利要求8所述的方法,其特征在于,所述查询响应消息为HTTP 308消息;
所述表示完整接收数据的数据区间信息为缺省信息。
13.一种文件上传装置,用于客户端,其特征在于,包括:
生成模块,用于生成大文件上传请求,所述大文件上传请求包括数据区间字段,所述数据区间字段用于携带完整的数据区间信息;
第一发送模块,用于通过HTTP协议,以POST方式向服务器发送所述大文件上传请求,以上传所述大文件。
14.一种文件上传装置,用于服务器,其特征在于,包括:
第一接收模块,用于通过HTTP协议,以POST方式接收客户端发送的大文件上传请求;
获取模块,用于根据所述大文件上传请求,获取大文件,并写入存储空间;
生成模块,用于根据写入结果,生成现场信息;所述现场信息包括数据区间信息,未完整接收所述大文件的数据时,所述数据区间信息表示已接收数据的数据区间信息;完整接收数据时,所述数据区间信息表示完整接收所述大文件的数据的数据区间信息。
15.一种客户端,其特征在于,包括权利要求13所述的装置。
16.一种服务器,其特征在于,包括权利要求14所述的装置。
17.一种系统,其特征在于,包括权利要求15所述的客户端和权利要求16所述的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810351139.9A CN108540566A (zh) | 2018-04-18 | 2018-04-18 | 文件上传方法、装置、系统以及客户端和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810351139.9A CN108540566A (zh) | 2018-04-18 | 2018-04-18 | 文件上传方法、装置、系统以及客户端和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108540566A true CN108540566A (zh) | 2018-09-14 |
Family
ID=63477732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810351139.9A Pending CN108540566A (zh) | 2018-04-18 | 2018-04-18 | 文件上传方法、装置、系统以及客户端和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540566A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096483A (zh) * | 2019-05-08 | 2019-08-06 | 北京奇艺世纪科技有限公司 | 一种重复文件检测方法、终端和服务器 |
CN110995788A (zh) * | 2019-11-13 | 2020-04-10 | 广州辰河质检技术有限公司 | 一种http服务器断点续传上传文件存储的实现方法 |
CN111625743A (zh) * | 2020-05-21 | 2020-09-04 | 广州华多网络科技有限公司 | 资源加载方法、装置及电子设备 |
CN112148675A (zh) * | 2020-11-24 | 2020-12-29 | 树根互联技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
WO2021082401A1 (zh) * | 2019-10-30 | 2021-05-06 | 北京海益同展信息科技有限公司 | 一种数据的上传方法、系统、装置及电子设备 |
CN113542418A (zh) * | 2021-07-16 | 2021-10-22 | 厦门雅基软件有限公司 | 文件管理方法、装置、电子设备及存储介质 |
-
2018
- 2018-04-18 CN CN201810351139.9A patent/CN108540566A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096483A (zh) * | 2019-05-08 | 2019-08-06 | 北京奇艺世纪科技有限公司 | 一种重复文件检测方法、终端和服务器 |
WO2021082401A1 (zh) * | 2019-10-30 | 2021-05-06 | 北京海益同展信息科技有限公司 | 一种数据的上传方法、系统、装置及电子设备 |
CN110995788A (zh) * | 2019-11-13 | 2020-04-10 | 广州辰河质检技术有限公司 | 一种http服务器断点续传上传文件存储的实现方法 |
CN110995788B (zh) * | 2019-11-13 | 2022-02-22 | 广州辰河质检技术有限公司 | 一种http服务器断点续传上传文件存储的实现方法 |
CN111625743A (zh) * | 2020-05-21 | 2020-09-04 | 广州华多网络科技有限公司 | 资源加载方法、装置及电子设备 |
CN111625743B (zh) * | 2020-05-21 | 2023-05-23 | 广州华多网络科技有限公司 | 资源加载方法、装置及电子设备 |
CN112148675A (zh) * | 2020-11-24 | 2020-12-29 | 树根互联技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN113542418A (zh) * | 2021-07-16 | 2021-10-22 | 厦门雅基软件有限公司 | 文件管理方法、装置、电子设备及存储介质 |
CN113542418B (zh) * | 2021-07-16 | 2024-03-26 | 厦门雅基软件有限公司 | 文件管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540566A (zh) | 文件上传方法、装置、系统以及客户端和服务器 | |
CN109040252B (zh) | 文件传输方法、系统、计算机设备和存储介质 | |
US9122651B1 (en) | Computer system to support failover in an event stream processing system | |
EP2773080A1 (en) | Sharing control system and method for network resources download information | |
US20020026521A1 (en) | System and method for managing and distributing associated assets in various formats | |
JP6373941B2 (ja) | データ管理方法及びその装置 | |
CN107483627A (zh) | 一种文件分发、下载方法、分发服务器、客户端及系统 | |
EP3471421B1 (en) | Live broadcast video replay method, server, and system | |
CN109521956B (zh) | 一种基于区块链的云存储方法、装置、设备及存储介质 | |
WO2019019535A1 (zh) | 数据发送、转发和传输的方法及装置 | |
CN102355426A (zh) | 实现离线文件传输的方法和系统 | |
CN105357110B (zh) | 邮件发送方法、装置及系统 | |
JP2018519569A (ja) | 信頼できるログイン方法及び装置 | |
CN109522462B (zh) | 一种基于区块链的云查询方法、装置、设备及存储介质 | |
CN105391570A (zh) | 用于ccn管道流的可靠内容交换的系统和方法 | |
CN105338421A (zh) | 一种hls流媒体传输方法及装置 | |
JP4594818B2 (ja) | サービス提供システム | |
EP3579526B1 (en) | Resource file feedback method and apparatus | |
CN105281987A (zh) | 路由器及数据上传方法、装置、系统 | |
CN111212043A (zh) | 一种多媒体文件的生成方法和装置 | |
US20150227534A1 (en) | Method for processing data query using information-centric network | |
US20190191222A1 (en) | Method and system of content distribution in the data transfer network with built-in mechanism of conditional access | |
KR102518727B1 (ko) | 지도 화면에서 타깃 영상을 실시간으로 생성하여 커뮤니케이션하는 방법 | |
KR101703963B1 (ko) | 캐시 서버를 이용한 멀티미디어 서비스를 제공하는 방법 및 시스템 | |
US20230042209A1 (en) | Tag Element System for User Content |
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 |