CN113037848B - 文件上传方法和系统 - Google Patents

文件上传方法和系统 Download PDF

Info

Publication number
CN113037848B
CN113037848B CN202110291814.5A CN202110291814A CN113037848B CN 113037848 B CN113037848 B CN 113037848B CN 202110291814 A CN202110291814 A CN 202110291814A CN 113037848 B CN113037848 B CN 113037848B
Authority
CN
China
Prior art keywords
uploading
json
server
fragment
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.)
Active
Application number
CN202110291814.5A
Other languages
English (en)
Other versions
CN113037848A (zh
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110291814.5A priority Critical patent/CN113037848B/zh
Publication of CN113037848A publication Critical patent/CN113037848A/zh
Application granted granted Critical
Publication of CN113037848B publication Critical patent/CN113037848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Abstract

本申请提供了一种文件上传方法,用于客户端中,所述方法包括:根据Amazon S3的上传协议生成JSON交互数据;及基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区。本申请通过JSON格式描述Amazon S3上传协议,发送和接收内容改成JSON描述,降低协议解析难度。

Description

文件上传方法和系统
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种文件上传方法、装置、计算机设备及计算机可读存储介质,以及文件上传系统。
背景技术
随着互联网和大数据的发展,越来越多的网络提供商开发云存储,用于存储终端上传的海量文件。所述云存储,是指将网络中大量的各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问等各种服务。所述云存储常常采用Amazon S3(Amazon Simple Storage Service,亚马逊简易储存服务)。其中,所述AmazonS3可以通过网络服务系统提供网络线上存储服务,经由网络服务页面,提供用户能够轻易把文件储存到网络服务器的方式来实现。
在现有技术中,Amazon S3是在XML(Extensible Markup Language,可扩展标记语言)版本的协议上实现的。然,大部分客户端不支持XML解析库,解析过程繁琐。
发明内容
本申请实施例的目的是提供一种文件上传方法、装置、计算机设备及计算机可读存储介质,用于解决基于Amazon S3的发送和接收内容,难于解析的问题。
本申请实施例的一个方面提供了一种文件上传方法,用于客户端中,所述方法包括:根据Amazon S3的上传协议生成JSON交互数据;及基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区。
可选的,基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,包括:将初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;接收并解析所述JSON格式的初始化响应,得到所述上传标识;及根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到所述存储区。
可选的,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息;根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,包括:基于所述HTTP传输协议将多个分片上传请求发送至所述服务端,分片上传请求包括分片和所述上传标识;接收所述服务端基于各个分片上传请求返回的各个状态值;及根据所述各个状态值,基于所述HTTP传输协议将分片合并请求发送给所述服务端,以使所述服务端根据所述分片合并请求合并携带所述上传标识的多个分片以得到所述目标文件;所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
本申请实施例的一个方面又提供了一种文件上传装置,包括:生成模块,用于根据Amazon S3的上传协议生成JSON交互数据;及传输模块,用于基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区。
本申请实施例的一个方面又提供了一种文件上传方法,用于基于Amazon S3的服务端中,所述方法包括:接收客户端发送的JSON交互数据和目标文件;及解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
可选的,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息;接收客户端发送的JSON交互数据和目标文件,包括:基于HTTP传输协议接收客户端发送的初始化请求;根据所述初始化请求生成JSON格式的初始化响应,所述JSON格式的初始化响应包括上传标识;将所述JSON格式的初始化响应发送到所述客户端,以使所述客户端根据所述上传标识发送多个分片上传请求,其中,分片上传请求包括分片和所述上传标识;基于所述HTTP传输协议接收所述多个分片上传请求;基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被成功处理,以使所述客户端根据所述各个状态值确定是否发送分片合并请求;接收所述分片合并请求,所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
可选的,解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区,包括:解析所述JSON格式的分片合并信息,获取分片合并指令;及根据所述分片合并指令,合并携带所述上传标识的多个分片以得到所述目标文件。
本申请实施例的一个方面又提供了一种文件上传装置,用于基于Amazon S3的服务端中,所述装置包括:接收模块,用于接收客户端发送的JSON交互数据和目标文件;及解析模块,用于解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述文件上传方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述文件上传方法的步骤。
本申请实施例的一个方面又提供了一种文件上传系统,包括:客户端;及基于所述Amazon S3的服务端;其中:所述客户端用于基于HTTP传输协议将初始化请求发送给所述服务端;所述服务端用于根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;所述客户端还用于接收并解析所述JSON格式的初始化响应,得到所述上传标识,及根据所述上传标识将多个分片上传请求发送到所述服务端,分片上传请求包括分片和所述上传标识;所述服务端还用于接收所述多个分片上传请求,并基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被所述服务端成功处理;所述客户端还用于根据所述服务端返回的所述各个状态值向所述服务端发送分片合并请求;其中,所述分片合并请求包括所述上传标识和JSON格式的分片合并信息;所述服务端还用于接收所述分片合并请求,解析所述分片合并请求中的JSON格式的分片合并信息,以合并携带有所述上传标识的多个分片以得到所述目标文件并存储。
本申请实施例提供的文件上传方法、装置、设备及计算机可读存储介质,通过JSON格式描述Amazon S3上传协议,发送和接收内容改成JSON描述,可以降低协议解析难度。
附图说明
图1示意性示出了根据本申请实施例的文件上传系统的系统架构图;
图2示意性示出了根据本申请实施例一的文件上传系统的工作流程图;
图3示意性示出了根据本申请实施例二的文件上传方法的流程图;
图4为图3中步骤S302的子步骤流程图;
图5为图4中步骤S404的子步骤流程图;
图6示意性示出了根据本申请实施例三的文件上传方法的另一流程图;
图7为图6中步骤S600的子步骤流程图;
图8为图6中步骤S602的子步骤流程图;
图9示意性示出了根据本申请实施例四的文件上传装置的框图;
图10示意性示出了根据本申请实施例五的文件上传装置的框图;及
图11示意性示出了根据本申请实施例六的适于实现文件上传方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
Amazon S3(Amazon Simple Storage Service,亚马逊简易储存服务),可以通过网络服务系统提供网络线上存储服务,经由网络服务页面,提供用户能够轻易把档案储存到网络服务器的方式来实现。
上传协议:用于实现上传过程的应用层协议,包括描述初始化,分块上传,合并上传的信息交换细节。
XML(Extensible Markup Language,可扩展标记语言):是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
JSON格式:JavaScript Object Notation,JS对象简谱,是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
图1示意性示出了根据本申请实施例的文件上传系统的架构示意图。如图1所示,服务端2可以通过一个或多个网络4连接多个客户端6。其中:
服务端2,可以通过网络服务系统提供网络线上存储服务,即云存储服务。
服务端2,可以支持Amazon S3,可用于从Web上的任何位置存储和检索任意数量的文件。文件可以是媒体文件(例如,视频文件,音频文件,文本文件)和/或其他文件。
在示例性的实施例中,服务端2可以指数据中心,例如单个房屋,或者分布在不同的地理位置(例如,在几个房屋)。服务端2可以通过一个或多个网络4提供服务。网络4包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或类似。网络4可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络4可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。
客户端6,可以支持Amazon S3,可用于将文件上传到服务端2中,以实现文件的云存储。
在示例性的实施例中,客户端6可以包括诸如移动设备,平板设备,膝上型计算机,智能设备(例如,智能服装,智能手表,智能眼镜),虚拟现实耳机,游戏设备,机顶盒,数字流设备,机器人,车载终端,智能电视,电视盒,电子书阅读器。
客户端6可以与一个或多个用户相关联。单个用户可以使用客户端6中的一个或多个来访问服务端2。客户端6可以行进到各种位置并使用不同的网络来访问服务端2。
本申请针对以下情况提供了一种新的文件上传方案:
现有的Amazon S3,是通过XML格式描述协议。申请人发现,上述做法有以下缺陷:①大部分客户端都不支持XML解析库,造成解析过程过于繁琐;②网络传输体积大。
本申请提供的新的文件上传方案,通过JSON格式描述S3上传协议,发送和接收内容改成JSON描述,可以压缩网络传输体积和降低协议解析难度。
以下将通过若干个实施例具体介绍本申请的文件上传方案。
实施例一
继续参考图1,在示例性的实施例中,所述文件上传系统可以包括如下:
客户端6;
基于所述Amazon S3的服务端2。
所述客户端6用于基于HTTP传输协议将初始化请求发送给所述服务端2;
所述服务端2用于根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端2分配的上传标识;
所述客户端6还用于接收并解析所述JSON格式的初始化响应,得到所述上传标识,及根据所述上传标识将多个分片上传请求发送到所述服务端2,分片上传请求包括分片和所述上传标识;
所述服务端2还用于接收所述多个分片上传请求,并基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被所述服务端2成功处理;
所述客户端6还用于根据所述服务端2返回的所述各个状态值向所述服务端2发送分片合并请求;其中,所述分片合并请求包括所述上传标识和JSON格式的分片合并信息;
所述服务端2还用于接收所述分片合并请求,解析所述分片合并请求中的JSON格式的分片合并信息,以合并携带有所述上传标识的多个分片以得到所述目标文件并存储。
为了更加清晰明白,下面结合参考图1和2揭示本实施例中的文件上传系统的工作流程:
步骤S200,客户端6基于HTTP传输协议将初始化请求发送给服务端2。
作为示例,所述初始化请求可以如下:
POST/{Key+}?uploads HTTP/1.1
Host:Bucket.s3.amazonaws.com
POST为HTTP请求方法,表示向指定的资源提交要被处理的数据。Host为指向相应的站点。
步骤S202,服务端2根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由服务端2分配的上传标识。
所述JSON格式的初始化响应,可以根据协议规则直接生成;也可以先生成XML格式的初始化响应,然后将XML格式的初始化响应转换为JSON格式的初始化响应。
作为示例,所述JSON格式的初始化响应可以如下:
步骤S204,客户端6基于HTTP传输协议接收所述JSON格式的初始化响应并解析,得到所述上传标识。
客户端6对所述JSON格式的初始化响应,解析得到所述响应头部和所述响应主体。所述响应主体为JSON格式描述的Amazon S3协议的交互信息。通过JSON解析工具对所述响应主体解析,可以得到Amazon S3的交互信息(包括所述上传标识)。
步骤S206,客户端6根据所述上传标识将多个分片上传请求发送到服务端2,分片上传请求包括分片和所述上传标识。
客户端6获得到所述上传标识之后,会执行以下操作:
(1)对目标文件分成多个分片,将每个分片分别封装到一个分片上传请求中,得到多个分片上传请求。每个分片上传请求均携带有所述上传标识,以标识所述多个分片。
作为示例,每个分片上传请求的请求头部可以如下:
PUT/Key+?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host:Bucket.s3.amazonaws.com
Content-Length:ContentLength
PUT,表示发送资源(分片)到服务端2;Content-Length用于描述实体的字节长度。
(2)将多个分片上传请求串行或并行发送给服务端2中。
步骤S208,服务端2接收所述多个分片上传请求。
步骤S210,服务端2基于各个分片上传请求返回各个状态值。
各个状态值表示相应的分片上传请求是否被所述服务端成功处理。
作为示例,包含状态值的响应可以如下:
HTTP/1.1 200
ETag:Etag
其中,“200”,为状态值,表示相应的分片上传请求在服务端2中被成功处理。Etag是Entity tag的缩写,为“被请求变量的实体值”。字段“ETag”是服务端2的一个资源的标识,在响应头部中将其传送到客户端6。所述资源为一个JSON文件。
步骤S212,客户端6根据服务端2返回的所述各个状态值向所述服务端发送分片合并请求;其中,所述分片合并请求包括所述上传标识和JSON格式的分片合并信息。
当获取到所有分片的状态值,且状态值均为200,则说明所述多个分片上传请求均成功被服务端2处理。则接下来需要服务端2将各个分片上传请求中的分片进行合并。
作为示例,客户端6可以向服务端2发送如下格式的分片上传请求:
步骤S214,服务端2接收所述分片合并请求,解析所述分片合并请求中的JSON格式的分片合并信息,以合并携带有所述上传标识的多个分片以得到所述目标文件并存储。
服务端2对所述分片合并请求,解析得到请求头部和请求主体。所述请求主体为JSON格式描述的Amazon S3协议的交互信息,用于请求服务端2合并分片。通过JSON解析工具解析所述请求主体,可以得到遵循Amazon S3的分片合并信息。
服务端2根据所述分片合并请求执行分片合并操作,并在合并完成之后执行步骤S216:返回一个响应,如:
本申请实施例提供的文件上传系统,通过JSON格式描述Amazon S3上传协议,发送和接收内容改成JSON描述,可以压缩网络传输体积和降低协议解析难度。
实施例二
本实施例以客户端6为执行主体进行描述,技术细节及技术效果可参考实施例一。
图3示意性示出了根据本申请实施例二的文件上传方法的流程图。如图3所示,该文件上传方法可以包括步骤S300~S302,其中:
步骤S300,根据Amazon S3的上传协议生成JSON交互数据。
步骤S302,基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区。
作为示例,如图4所示,所述步骤S302可以包括步骤S400~S404,其中:步骤S400,将初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;步骤S402,接收并解析所述JSON格式的初始化响应,得到所述上传标识;及步骤S404,根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到所述存储区。在本实施例中,诸如JSON格式的初始化响应等容易解析和体积小,能够被绝大多数客户端所支持,解析效率高。
作为示例,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息。如图5所示,所述步骤S404可以包括步骤S500~S504,其中:步骤S500,基于所述HTTP传输协议将多个分片上传请求发送至所述服务端,分片上传请求包括分片和所述上传标识;步骤S502,接收所述服务端基于各个分片上传请求返回的各个状态值;及步骤S504,根据所述各个状态值,基于所述HTTP传输协议将分片合并请求发送给所述服务端,以使所述服务端根据所述分片合并请求合并携带所述上传标识的多个分片以得到所述目标文件;所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。在本实施例中,将目标文件分为多个分片,将所述多个分片上传并行发送给服务端2中,提升上传效率。
实施例三
本实施例以基于Amazon S3的服务端2为执行主体进行描述,技术细节及技术效果可参考实施例一。
图6示意性示出了根据本申请实施例三的文件上传方法的流程图。如图6所示,该文件上传方法可以包括步骤S600~S602,其中:
步骤S600,接收客户端发送的JSON交互数据和目标文件。
步骤S602,解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
作为示例,所述目标文件包括多个分片。如图7所示,所述步骤S600可以包括步骤S700~S710,其中:步骤S700,基于HTTP传输协议接收客户端发送的初始化请求;步骤S702,根据所述初始化请求生成JSON格式的初始化响应,所述JSON格式的初始化响应包括上传标识;步骤S704,将所述JSON格式的初始化响应发送到所述客户端,以使所述客户端根据所述上传标识发送多个分片上传请求,其中,分片上传请求包括分片和所述上传标识;步骤S706,基于所述HTTP传输协议接收所述多个分片上传请求;步骤S708,基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被成功处理,以使所述客户端根据所述各个状态值确定是否发送分片合并请求;步骤S710,接收所述分片合并请求,所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
作为示例,如图8所示,所述步骤S602可以包括步骤S800~S802,其中:步骤S800,解析所述JSON格式的分片合并信息,获取分片合并指令;及步骤S802,根据所述分片合并指令,合并携带所述上传标识的多个分片以得到所述目标文件。
实施例四
图9示意性示出了根据本申请实施例四的文件上传装置的框图,该文件上传装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本申请实施例中各程序模块的功能。
如图9所示,该文件上传装置900可以包括生成模块910和传输模块920,其中:
生成模块910,用于根据Amazon S3的上传协议生成JSON交互数据;及
传输模块920,用于基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区。
作为示例,所述传输模920,还用于:将初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;接收并解析所述JSON格式的初始化响应,得到所述上传标识;及根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到所述存储区。
作为示例,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息。所述传输模块920,还用于:基于所述HTTP传输协议将多个分片上传请求发送至所述服务端,分片上传请求包括分片和所述上传标识;接收所述服务端基于各个分片上传请求返回的各个状态值;及根据所述各个状态值,基于所述HTTP传输协议将分片合并请求发送给所述服务端,以使所述服务端根据所述分片合并请求合并携带所述上传标识的多个分片以得到所述目标文件;所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
实施例五
图10示意性示出了根据本申请实施例五的文件上传装置的框图,该文件上传装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本申请实施例中各程序模块的功能。
如图10所示,该文件上传装置1000,用于基于Amazon S3的服务端中,所述装置包括可以包括接收模块1010和解析模块1020,其中:
接收模块1010,用于接收客户端发送的JSON交互数据和目标文件;及
解析模块1020,用于解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
作为示例,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息;所述接收模块1010,还用于:基于HTTP传输协议接收客户端发送的初始化请求;根据所述初始化请求生成JSON格式的初始化响应,所述JSON格式的初始化响应包括上传标识;将所述JSON格式的初始化响应发送到所述客户端,以使所述客户端根据所述上传标识发送多个分片上传请求,其中,分片上传请求包括分片和所述上传标识;基于所述HTTP传输协议接收所述多个分片上传请求;基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被成功处理,以使所述客户端根据所述各个状态值确定是否发送分片合并请求;接收所述分片合并请求,所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
作为示例,所述解析模块1020还用于:解析所述JSON格式的分片合并信息,获取分片合并指令;及根据所述分片合并指令,合并携带所述上传标识的多个分片以得到所述目标文件。
实施例六
图11示意性示出了根据本申请实施例六的适于实现文件上传方法的计算机设备1100的硬件架构示意图。所述计算机设备1100可以作为服务端2,也可以作为客户端6。本实施例中,计算机设备1100是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图11所示,计算机设备1100至少包括但不限于:可通过系统总线相互通信链接存储器1110、处理器1120、网络接口1130。其中:
存储器1110至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1110可以是计算机设备1100的内部存储模块,例如该计算机设备1100的硬盘或内存。在另一些实施例中,存储器1110也可以是计算机设备1100的外部存储设备,例如该计算机设备1100上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器1110还可以既包括计算机设备1100的内部存储模块也包括其外部存储设备。本实施例中,存储器1110通常用于存储安装于计算机设备1100的操作系统和各类应用软件,例如文件上传方法的程序代码等。此外,存储器1110还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1120在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1120通常用于控制计算机设备1100的总体操作,例如执行与计算机设备1100进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1120用于运行存储器1110中存储的程序代码或者处理数据。
网络接口1130可包括无线网络接口或有线网络接口,该网络接口1130通常用于在计算机设备1100与其他计算机设备之间建立通信链接。例如,网络接口1130用于通过网络将计算机设备1100与外部终端相连,在计算机设备1100与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(WidebandCode Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图11仅示出了具有部件1110-1130的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1110中的文件上传方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1120)所执行,以完成本申请实施例。
实施例七
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的文件上传方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中文件上传方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种文件上传方法,用于客户端中,其特征在于,所述方法包括:
根据Amazon S3的上传协议生成JSON交互数据;及
基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区;其中,基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,包括:将JSON格式的初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应。
2.根据权利要求1所述的文件上传方法,其特征在于,基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,包括:
将初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;
接收并解析所述JSON格式的初始化响应,得到所述上传标识;及
根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到所述存储区。
3.根据权利要求2所述的文件上传方法,其特征在于,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息;根据所述上传标识,基于所述HTTP传输协议将所述JSON交互数据和所述目标文件发送到所述服务端,包括:
基于所述HTTP传输协议将多个分片上传请求发送至所述服务端,分片上传请求包括分片和所述上传标识;
接收所述服务端基于各个分片上传请求返回的各个状态值;及
根据所述各个状态值,基于所述HTTP传输协议将分片合并请求发送给所述服务端,以使所述服务端根据所述分片合并请求合并携带所述上传标识的多个分片以得到所述目标文件;所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
4.一种文件上传装置,其特征在于,包括:
生成模块,用于根据Amazon S3的上传协议生成JSON交互数据;及
传输模块,用于基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,以使所述服务端基于所述JSON交互数据将所述目标文件存储到存储区;其中,基于HTTP传输协议,将所述JSON交互数据和目标文件发送到基于所述Amazon S3的服务端,包括:将JSON格式的初始化请求发送给所述服务端,以使所述服务端根据所述初始化请求返回JSON格式的初始化响应。
5.一种文件上传方法,用于基于Amazon S3的服务端中,其特征在于,所述方法包括:
接收客户端发送的JSON交互数据和目标文件,其中,所述JSON交互数据根据Amazon S3的上传协议生成,所述上传协议通过JSON格式描述;及
解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
6.根据权利要求5所述的文件上传方法,其特征在于,所述目标文件包括多个分片,所述JSON交互数据包括JSON格式的分片合并信息;接收客户端发送的JSON交互数据和目标文件,包括:
基于HTTP传输协议接收客户端发送的初始化请求;
根据所述初始化请求生成JSON格式的初始化响应,所述JSON格式的初始化响应包括上传标识;
将所述JSON格式的初始化响应发送到所述客户端,以使所述客户端根据所述上传标识发送多个分片上传请求,其中,分片上传请求包括分片和所述上传标识;
基于所述HTTP传输协议接收所述多个分片上传请求;
基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被成功处理,以使所述客户端根据所述各个状态值确定是否发送分片合并请求;
接收所述分片合并请求,所述分片合并请求包括所述上传标识和所述JSON格式的分片合并信息。
7.根据权利要求6所述的文件上传方法,其特征在于,解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区,包括:
解析所述JSON格式的分片合并信息,获取分片合并指令;及
根据所述分片合并指令,合并携带所述上传标识的多个分片以得到所述目标文件。
8.一种文件上传装置,用于基于Amazon S3的服务端中,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的JSON交互数据和目标文件,其中,所述JSON交互数据根据Amazon S3的上传协议生成,所述上传协议通过JSON格式描述;及
解析模块,用于解析所述JSON交互数据以得到解析数据,并根据所述解析数据将所述目标文件存储到存储区。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至3或5至7中任意一项所述的文件上传方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至3或5至7中任意一项所述的文件上传方法的步骤。
11.一种文件上传系统,其特征在于,包括:
客户端;及
基于所述Amazon S3的服务端;其中:
所述客户端用于基于HTTP传输协议将初始化请求发送给所述服务端;
所述服务端用于根据所述初始化请求返回JSON格式的初始化响应,所述JSON格式的初始化响应包括由所述服务端分配的上传标识;
所述客户端还用于接收并解析所述JSON格式的初始化响应,得到所述上传标识,及根据所述上传标识将多个分片上传请求发送到所述服务端,分片上传请求包括分片和所述上传标识;
所述服务端还用于接收所述多个分片上传请求,并基于各个分片上传请求返回各个状态值,各个状态值表示相应的分片上传请求是否被所述服务端成功处理;
所述客户端还用于根据所述服务端返回的所述各个状态值向所述服务端发送分片合并请求;其中,所述分片合并请求包括所述上传标识和JSON格式的分片合并信息;
所述服务端还用于接收所述分片合并请求,解析所述分片合并请求中的JSON格式的分片合并信息,以合并携带有所述上传标识的多个分片以得到所述目标文件并存储。
CN202110291814.5A 2021-03-18 2021-03-18 文件上传方法和系统 Active CN113037848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110291814.5A CN113037848B (zh) 2021-03-18 2021-03-18 文件上传方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110291814.5A CN113037848B (zh) 2021-03-18 2021-03-18 文件上传方法和系统

Publications (2)

Publication Number Publication Date
CN113037848A CN113037848A (zh) 2021-06-25
CN113037848B true CN113037848B (zh) 2024-03-15

Family

ID=76471458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110291814.5A Active CN113037848B (zh) 2021-03-18 2021-03-18 文件上传方法和系统

Country Status (1)

Country Link
CN (1) CN113037848B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037741B (zh) * 2022-08-11 2022-11-15 中国长江三峡集团有限公司 一种文件传输方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259787A (zh) * 2013-04-18 2013-08-21 银江股份有限公司 一种基于json协议包的医疗领域云及端安全交互方法
CN104753770A (zh) * 2015-03-31 2015-07-01 努比亚技术有限公司 控制图片分享的方法和装置
CN105933335A (zh) * 2016-06-21 2016-09-07 上海卓易云汇智能技术有限公司 一种网络协议封装的实现方法
CN106534261A (zh) * 2016-10-09 2017-03-22 乐视控股(北京)有限公司 数据写入方法、装置及系统
CN110928876A (zh) * 2019-11-08 2020-03-27 上海数禾信息科技有限公司 资信数据存储的方法和装置
CN110971704A (zh) * 2019-12-11 2020-04-07 杭州安恒信息技术股份有限公司 一种基于json配置文件的数据传输方法及装置
US10880076B1 (en) * 2019-08-29 2020-12-29 Blockstack Pbc Backup of encrypted information stored off-chain in a blockchain-based decentralized storage system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255934B (zh) * 2010-05-20 2015-10-21 中兴通讯股份有限公司 云服务发布方法及云服务中介
US10216902B2 (en) * 2014-08-31 2019-02-26 General Electric Company Methods and systems for improving connections within a healthcare ecosystem
US10506017B2 (en) * 2016-05-20 2019-12-10 Adobe Inc. Manipulation of PDF file content through HTTP requests
US10951552B2 (en) * 2017-10-30 2021-03-16 International Business Machines Corporation Generation of a chatbot interface for an application programming interface
US11295390B2 (en) * 2019-03-19 2022-04-05 Hippo Analytics Inc. Document integration into policy management system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259787A (zh) * 2013-04-18 2013-08-21 银江股份有限公司 一种基于json协议包的医疗领域云及端安全交互方法
CN104753770A (zh) * 2015-03-31 2015-07-01 努比亚技术有限公司 控制图片分享的方法和装置
CN105933335A (zh) * 2016-06-21 2016-09-07 上海卓易云汇智能技术有限公司 一种网络协议封装的实现方法
CN106534261A (zh) * 2016-10-09 2017-03-22 乐视控股(北京)有限公司 数据写入方法、装置及系统
US10880076B1 (en) * 2019-08-29 2020-12-29 Blockstack Pbc Backup of encrypted information stored off-chain in a blockchain-based decentralized storage system
CN110928876A (zh) * 2019-11-08 2020-03-27 上海数禾信息科技有限公司 资信数据存储的方法和装置
CN110971704A (zh) * 2019-12-11 2020-04-07 杭州安恒信息技术股份有限公司 一种基于json配置文件的数据传输方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
s3.save a json file to aws s3;overflow;《https://stackoverflow.com/questions/60573206/s3-save-a-json-file-to-aws-s3》;20200307;第1页-第3页 *

Also Published As

Publication number Publication date
CN113037848A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
JP4363847B2 (ja) インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル
CN111756674B (zh) 网络通信方法、系统、设备及计算机可读存储介质
US8850307B2 (en) Method and apparatus for receiving display limited web page content
CN111736775A (zh) 多源存储方法、装置、计算机系统及存储介质
CN112422702A (zh) Cdn回源方法、系统及计算机设备
CN113190778A (zh) 业务数据推送方法、系统、计算机设备及计算机存储介质
US20140143339A1 (en) Method, apparatus, and system for resource sharing
CN102098330A (zh) 基于json数据格式的异步传输方法、装置及系统
CN113382083B (zh) 一种网页截图方法和装置
US20190102465A1 (en) Api query extension
CN112422450B (zh) 计算机设备、服务请求的流量控制方法及装置
CN112416964A (zh) 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质
CN112714365B (zh) 视频播放方法和系统
CN113037848B (zh) 文件上传方法和系统
US10334014B2 (en) Accessing connected service resources in a distributed application programming interface
EP2787454A1 (en) Methods for optimizing a web content proxy server and devices thereof
CN112818270A (zh) 数据跨域传递方法、装置及计算机设备
CN116743785A (zh) 基于雾计算的云网数据存储方法、装置、设备及介质
CN113746851B (zh) 一种支持实时解析grpc请求的代理系统和方法
CN115858905A (zh) 数据处理的方法、装置、电子设备和存储介质
CN113271300B (zh) 一种认证的系统和方法
CN112688980B (zh) 资源分发方法、装置、计算机设备
CN111245949A (zh) 文件归档传输方法、装置及设备
US11086822B1 (en) Application-based compression
CN109344344A (zh) 网页客户端的标识方法、服务器及计算机可读存储介质

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