向开放平台上传视频的方法、装置、存储介质及电子设备与流程

文档序号:31722188发布日期:2022-10-04 23:35阅读:44来源:国知局
向开放平台上传视频的方法、装置、存储介质及电子设备与流程

1.本公开总体上涉及计算机技术领域,更具体地涉及一种向开放平台上传视频的方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备。


背景技术:

2.本部分旨在介绍本领域的一些方面,其可以与下面描述的和/或要求保护的本公开的各个方面相关。相信本部分有助于提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些陈述应该从这个角度来理解,而不是作为对现有技术的承认。
3.开放平台是指软件系统通过公开其应用程序编程接口(application programming interface,api)或函数来使第三方的应用程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。视频上传流程通常包括在视频上传时对视频文件进行初始化,针对较大的视频文件,为了提高上传成功率会对视频文件进行分片、合片处理。当前的主要实现形式是开放平台提供http接口(一种开放api接口),第三方的服务器端通过对开放平台服务器端的调用来进行交互。
4.但是,通过服务器端api交互的方式来实现视频上传会占用第三方应用程序的服务器带宽和存储空间,增加第三方技术成本。


技术实现要素:

5.本公开的目的在于提供一种向开放平台上传视频的方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备,以降低第三方应用程序在视频上传环节的技术成本。
6.根据本公开的第一方面,提供一种向开放平台上传视频的方法,所述开放平台包括用以进行视频上传的第一应用程序编程接口,所述方法包括:获取上传令牌,其中,所述上传令牌与触发视频上传操作所需的第一类参数具有映射关系;调用所述第一应用程序编程接口并传入所述上传令牌以执行视频上传操作。
7.根据本公开的第二方面,提供了一种向开放平台上传视频的方法,所述开放平台包括用以进行视频分片上传的第三应用程序编程接口和用以进行视频分片合成的第四应用程序编程接口,所述方法包括:获取上传令牌,其中,所述上传令牌与触发视频分片上传操作所需的第三类参数和与触发视频分片合成操作所需的第四类参数具有映射关系;调用所述第三应用程序编程接口并传入所述上传令牌以执行视频分片上传操作;调用所述第四应用程序编程接口并传入所述上传令牌以执行视频分片合成操作。
8.根据本公开的第三方面,提供了一种向开放平台上传视频的装置,所述开放平台包括用以进行视频上传的第一应用程序编程接口,所述装置包括:获取模块,其配置为获取上传令牌,其中,所述上传令牌与触发视频上传操作所需的第一类参数具有映射关系;调用模块,其配置为调用所述第一应用程序编程接口并传入所述上传令牌以执行视频上传操作。
9.根据本公开的第四方面,提供了一种向开放平台上传视频的装置,所述开放平台包括用以进行视频分片上传的第三应用程序编程接口和用以进行视频分片合成的第四应用程序编程接口,所述装置包括:获取模块,获取上传令牌,其中,所述上传令牌与触发视频分片上传操作所需的第三类参数和触发视频分片合成操作所需的第四类参数具有映射关系;第一调用模块,其配置为调用所述第三应用程序编程接口并传入所述上传令牌以执行视频分片上传操作;第二调用模块,其配置为调用所述第四应用程序编程接口并传入所述上传令牌以执行视频分片合成操作。
10.根据本公开的第五方面,提供了一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行根据本公开的第一方面所述的方法。
11.根据本公开的第六方面,提供了一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行根据本公开的第二方面所述的方法。
12.根据本公开的第七方面,提供了一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开的第一方面所述的方法。
13.根据本公开的第八方面,提供了一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开的第二方面所述的方法。
14.根据本公开的第九方面,提供了一种电子设备,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述电子设备执行根据本公开的第一方面所述的方法。
15.根据本公开的第十方面,提供了一种电子设备,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述电子设备执行根据本公开的第二方面所述的方法。
16.根据本公开提供的各个实施例,可以通过可供第三方应用程序的前端集成的软件开发工具包,为第三方应用程序提供视频文件的上传能力,降低了第三方应用程序的技术成本。
17.应当理解,本部分所描述的内容并不旨在标识所要求保护的发明内容的关键或必要特征,也不旨在单独地用于确定所要求保护的发明内容的范围。
附图说明
18.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
19.图1示出了可以应用本公开实施例提供的向开放平台上传视频的方法的示意性系统架构图。
20.图2示出了根据本公开的向开放平台上传视频的方法的一个示例的流程示意图。
21.图3示出了根据本公开实施例的向开放平台上传视频的方法的一个示例交互流
程。
22.图4示出了根据本公开的向开放平台上传视频的方法的又一个示例的流程示意图。
23.图5示出了根据本公开实施例的向开放平台上传视频的方法的又一个示例交互流程。
24.图6示出了根据本公开的开放平台的内部对上传令牌进行鉴权的流程的一个示例。
25.图7示出了根据本公开实施例的向开放平台上传视频的方法的一个示例。
26.图8示出了根据本公开实施例的向开放平台上传视频的方法的一个示例交互流程。
27.图9示出了根据本公开的向开放平台上传视频的方法的又一个示例的流程示意图。
28.图10示出了根据本公开实施例的向开放平台上传视频的方法的又一个示例交互流程。
29.图11示出了根据本公开的开放平台的内部对上传令牌进行鉴权的流程的一个示例。
30.图12示了根据本公开的各个实施例中的上传令牌的生成方法的一个示例流程。
31.图13示出了根据本公开的实施例的向开放平台上传视频的装置的示例性框图。
32.图14出了根据本公开的实施例的向开放平台上传视频的装置的示例性框图。
33.图15示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。
34.具体实现方式
35.下文将参考附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文描述的实施例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,这种方式并不旨在将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
36.应当理解,尽管本文可以用术语第一、第二等描述各种元素,但是这些元素不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素,而不脱离本公开的教导。
37.本文结合框图和/或流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模分块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
38.本文提到的“根据...示例”或“在..示例中”意味着结合示例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本文中不同地方出现的短语“根据...示例”或“在...示例中”不一定都指同一示例,也不一定是与其他示例相互排斥的单独或替代示例。
39.图1示出了可以应用本公开实施例提供的向开放平台上传视频的方法的示意性系统架构图。如图1所示,该系统架构100可以包括第三方应用程序的服务器101、在其上安装
有第三方应用程序的终端设备102、开放平台的服务器103。终端设备102可以通过网络与服务器101进行交互,例如终端设备102可以通过网络向服务器101发送上传视频文件的请求。服务器103可以通过网络与服务器101进行交互,例如服务器101可以通过网络向服务器103发送与视频上传任务相关联的参数。服务器103可以提供各种类型的服务,例如服务器103可以根据接收到的与视频上传任务相关联的参数,生成上传令牌(下文即将详细描述)。服务器103还可以提供各种类型的api接口以提供相应的能力支持,例如服务器103可以提供视频文件上传接口以向终端设备102提供视频文件上传能力。
40.需要说明的是,服务器101或服务器103可以是硬件,也可以是软件。当服务器101或服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器101或服务器103为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。
41.需要说明的是,本公开实施例提供的向开放平台上传视频的方法可以由终端设备102执行。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,根据实现需要,可以具有任意数目的终端设备、网络和服务器。
42.在本公开的示例中,前端可以是指图1中的终端设备102的用户在网页或者应用程序上浏览的内容,后端(又称服务器端)可以是指在网站或者应用程序上,对于终端设备102的用户不可见的内容。后端可以提供数据交互以处理相应的业务逻辑,通常包括功能实现、数据的存取等。为了描述之方便,在本文中,前端、终端、终端设备可以互换使用,后端、服务器端、服务器可以互换使用。
43.下面结合图2对根据本公开实施例的向开放平台上传视频的方法的一个示例进行说明。如图2所示,该向开放平台上传视频的方法200包括:
44.步骤s202:获取上传令牌,其中,所述上传令牌与触发视频上传操作所需的第一类参数具有映射关系。
45.步骤s204:调用所述第一应用程序编程接口并传入所述上传令牌以执行视频上传操作。
46.在该示例中,开放平台可以提供视频上传的软件开发工具包(software development kit,sdk),以向第三方应用程序提供视频上传能力支持。第三方应用程序可以根据开放平台的sdk协议规范填入调用参数以调用开放平台的视频上传能力。在该示例中,图1中的终端设备102可以根据开放平台的sdk协议规范拼装成统一资源定位符(uniform resource locator,url),通过发送http请求到开放平台即能获得所需的能力。在该示例中,开放平台的sdk可以包括用于进行视频上传的第一应用程序编程接口,图1中的终端设备102通过调用第一应用程序编程接口可以获得开放平台提供的视频上传能力。示例性地,第一应用程序编程接口可以为单个小视频文件(例如文件不超过100m)上传接口。
47.在该示例中,图1中的终端设备102调用第一应用程序编程接口而填入的调用参数为上传令牌。上传令牌为在视频文件上传的交互中,开放平台服务端生成的随机字符串,例如上传令牌可以是存储空间的地址索引。在该示例中,第一类参数包括为了触发开放平台的视频上传流程而由开放平台所需的参数,例如开放平台分配的存储空间路径(参数名:upos_uri)、开放平台对视频文件的唯一标识(参数名:filename)、开放平台对视频文件上
传动作的唯一标识(参数名:upload_id)等。在该示例中,上传令牌可以标识第一类参数。在一些示例中,第一类参数还包括第三方应用程序的标识(参数名:client_id)。在该示例中,通过将第一类参数映射成上传令牌返回给第三方应用程序,可以有效减少第三方应用程序与开放平台接口交互的参数复杂度,降低了数据安全风险。
48.在该示例中,图1中的终端设备102在调用第一应用程序编程接口时,还可以将视频文件的二进制流(即视频内容)传入第一应用程序编程接口。
49.图3示出了根据本公开实施例的向开放平台上传视频的方法的一个示例交互流程。如图3所示,该向开放平台上传视频的方法包括:
50.在第1步骤,三方服务端(即本公开中的第三方应用程序的服务器)向三方前端(即本公开中的第三方应用程序的前端)返回由开放平台服务端生成的上传令牌。该上传令牌与触发开放平台的视频上传流程所需的第一类参数具有映射关系。
51.在第2步骤,三方前端调用开放平台的sdk并填入参数。这里填入的参数包括上传令牌。这里的sdk包括用于进行视频上传的第一应用程序编程接口(例如图3中的视频文件上传接口)。
52.在第3步骤,三方前端调用开放平台服务端的视频文件上传接口。开放平台服务端根据上传令牌解析出触发视频上传流程所需的第一类参数并执行视频上传操作。
53.在第4、5步骤,开放平台服务端根据视频上传操作的执行情况返回消息体。这里的消息体可以包括三类参数,分别是{code、message、data},code为0表示上传成功,code为其他值表示上传失败,message为文案描述,data为数据(例如上传令牌)。
54.根据本公开实施例提供的向开放平台上传视频的方法,可以通过可供第三方应用程序的前端集成的软件开发工具包,使得第三方应用程序的前端用户直接将视频文件上传到开放平台,而不必占用第三方应用程序的服务器带宽和存储空间,降低了第三方应用程序的技术成本。
55.图4示出了根据本公开的向开放平台上传视频的方法的又一个示例的流程示意图。
56.如图4所示,该向开放平台上传视频的方法400包括:
57.步骤s402:生成与视频上传任务相关联的第二类参数,其中,所述上传令牌由所述开放平台基于所述第二类参数生成。
58.在该示例中,图1中的终端设备可以生成与视频上传任务相关联的第二类参数。视频上传任务可以包括哪个前端用户要进行视频上传、前端用户要上传哪些视频文件等。第二类参数与当前的视频上传任务相关联,第二类参数可以包括前端用户的授权令牌(参数名:access_token)、视频的文件名称(参数名:name)等。前端用户可以选择当前要上传的本地视频文件,点击上传按钮后,前端即可以生成第二类参数。
59.在该示例中,开放平台可以根据第二类参数生成上传令牌。例如,开放平台可以对前端用户的授权令牌进行鉴权,在鉴权通过后生成一个随机字符串(即上传令牌)来标识存储空间的地址索引,然后将第二类参数与随机字符串生成映射并将第二类参数组装成数据结构存储到开放平台的存储器中。
60.在一些示例中,开放平台还包括用以进行视频上传预处理的第二应用程序编程接口,上传令牌由应用程序服务器端通过调用第二应用程序编程接口并传入第二类参数而生
成。在该示例中,视频上传预处理操作可以包括对视频文件进行初始化,图1中的服务器101通过调用第二应用程序编程接口可以获得开放平台提供的对视频文件进行初始化的能力。在该示例中,图1中的服务器101可以根据第二应用程序编程接口协议规范拼装成url,通过发送http请求到开放平台即能获得对视频文件进行初始化的能力。示例地,第二应用程序编程接口协议规范包括请求url、url参数(例如access_token)、body参数(例如name)等。
61.步骤s404:获取上传令牌,其中,所述上传令牌与触发视频上传操作所需的第一类参数具有映射关系。
62.步骤s406:调用所述第一应用程序编程接口并传入所述上传令牌以执行视频上传操作。
63.图5示出了根据本公开实施例的向开放平台上传视频的方法的又一个示例交互流程。如图5所示,该向开放平台上传视频的方法包括:
64.在第1步骤,在三方前端用户选择本地视频文件、点击上传按钮后,三方前端可以生成第二类参数并调用三方服务端、传入第二类参数。第二类参数可以包括前端用户的授权令牌(参数名:access_token)、视频的文件名称(参数名:name)等。
65.在第2步骤,三方服务端可以调用开放平台的视频文件上传预处理接口。开放平台可以根据第二类参数生成上传令牌。例如,开放平台可以对前端用户的授权令牌进行鉴权,在鉴权通过后生成一个随机字符串(即上传令牌)来标识存储空间的地址索引,然后将第二类参数与随机字符串生成映射并将第二类参数组装成数据结构存储到开放平台的存储器中。
66.在第3步骤,开放平台服务端向三方服务端通过消息体返回上传令牌。
67.在第4步骤,三方服务端向三方前端返回由开放平台服务端生成的上传令牌。该上传令牌与触发开放平台的视频上传流程所需的第一类参数具有映射关系。
68.在第5步骤,三方前端调用开放平台的sdk并填入参数。这里填入的参数包括上传令牌。这里的sdk包括用于进行视频上传的第一应用程序编程接口(例如图5中的视频文件上传接口)。
69.在第6步骤,开放平台服务端调用视频文件上传接口。开放平台服务端根据上传令牌解析出触发视频上传流程所需的第一类参数并执行视频上传操作。
70.在第7、8步骤,开放平台服务端根据视频上传操作的执行情况返回消息体。
71.在一些可选的示例中,上传令牌可以具有物理有效期,在开放平台执行视频上传操作之前,开放平台还对上传令牌进行鉴权以确定上传令牌处于物理有效期内。可选地,上传令牌可以设置较短的物理有效期,例如一天或两天。图6示出了根据本公开的开放平台的内部对上传令牌进行鉴权的流程的一个示例。图6中的第3步骤“调用视频文件上传接口,传入上传令牌”对应于图3中的第3步骤“调用视频文件上传接口”,图6中的第3步骤“返回消息体”对应于与图3中的第3步骤“返回消息体”,关于图6中第3步骤和第4步骤的描述可以参见上文中结合图3的相关描述。
72.如图6所示,开放平台可以包括视频云平台、授权服务平台。在第3-1步骤,视频云平台可以调用授权服务平台的上传令牌鉴权接口。在第3-2步骤,授权服务平台可以从存储单元(例如redis)读取第一类参数并对上传令牌进行鉴权以确定上传令牌处于物理有效期内。在第3-3步骤,若上传令牌处于物理有效期内,授权服务平台可以返回关于鉴权成功的
消息体以及第一类参数。第一类参数为视频云平台执行视频上传操作所必须的参数。在第3-4步骤,视频云平台根据第一类参数以及视频文件的二进制流(在第3步骤传入)执行视频上传操作。
73.在另一些示例中,上传令牌还具有法律有效期,在开放平台执行视频上传操作之前,开放平台还对上传令牌进行鉴权以确定上传令牌处于法律有效期内。在一些场景下,当上传令牌还处于物理有效期时,前端用户可以主动取消当前的视频上传操作,此时开放平台应中断当前的视频上传操作以规避法律风险。基于此,可以为上传令牌设置法律有效期,当上传令牌处于法律有效期时,即前端用户继续授权当前的视频上传操作;当上传令牌不处于法律有效期时,即前端用户取消继续授权当前的视频上传操作。在该示例中,对上传令牌的法律有效期进行鉴权的流程与对上传令牌的物理有效期进行鉴权的流程相似,具体可以参见本文结合图6的相关描述。
74.根据本公开的实施例提供的向开放平台上传视频的方法,通过有效期较短的上传令牌可以将第三方应用程序的重要数据保护在服务端,降低数据安全的风险。
75.下面结合图7对根据本公开实施例的向开放平台上传视频的方法的一个示例进行说明。如图7所示,该向开放平台上传视频的方法700包括:
76.步骤s702:获取上传令牌,其中,所述上传令牌与触发视频分片上传操作所需的第三类参数和触发视频合成操作所需的第四类参数具有映射关系。
77.步骤s704:调用所述第三应用程序编程接口并传入所述上传令牌以执行视频分片上传操作。
78.步骤s706:调用所述第四应用程序编程接口并传入所述上传令牌以执行视频分片合成操作。
79.在该示例中,开放平台可以提供视频上传的软件开发工具包,以向第三方应用程序提供视频上传能力支持。第三方应用程序可以根据开放平台的sdk协议规范填入调用参数以调用开放平台的视频上传能力。在该示例中,图1中的终端设备102可以根据开放平台的sdk协议规范拼装成统一资源定位符,通过发送http请求到开放平台即能获得所需的能力。在该示例中,开放平台的sdk可以包括用以进行视频分片上传的第三应用程序编程接口和用以进行视频分片合成的第四应用程序编程接口,图1中的终端设备102通过调用第三应用程序编程接口可以获得开放平台提供的视频分片上传能力,通过调用第四应用程序编程接口可以获得开放平台提供的视频分片合成能力。示例性地,第三应用程序编程接口可以为较大视频文件(例如文件超过100m)上传接口。
80.在该示例中,图1中的终端设备102调用第三应用程序编程接口和第四应用程序编程接口而填入的调用参数为上传令牌。上传令牌为在视频文件上传的交互中,开放平台服务端生成的随机字符串,例如上传令牌可以是存储空间的地址索引。在该示例中,第三类参数包括为了触发开放平台的视频分片上传流程而由开放平台所需的参数,例如开放平台分配的存储空间路径(参数名:upos_uri)、开放平台对视频文件的唯一标识(参数名:filename)、开放平台对视频分片文件上传动作的唯一标识(参数名:upload_id)等。在该示例中,上传令牌可以标识第三类参数。在示例中,第四类参数包括为了触发开放平台的视频分片合成流程而由开放平台所需的参数,例如开放平台分配的存储空间路径(参数名:upos_uri)、开放平台对视频文件的唯一标识(参数名:filename)、开放平台对视频分片文
件上传动作的唯一标识(参数名:upload_id)、开放平台对用户的唯一标识(参数名:uid)等。
81.在一些示例中,第三类参数和第四类参数还包括第三方应用程序的标识(参数名:client_id)。在该示例中,通过将第三类参数和第四类参数映射成上传令牌返回给第三方应用程序,可以有效减少第三方应用程序与开放平台接口交互的参数复杂度,降低了数据安全风险。
82.在该示例中,图1中的终端设备102在调用第三应用程序编程接口时,还可以将视频分片编号(参数名:part_number)、将视频分片文件的二进制流(即视频内容)传入第三应用程序编程接口。
83.图8示出了根据本公开实施例的向开放平台上传视频的方法的一个示例交互流程。如图8所示,该向开放平台上传视频的方法包括:
84.在第1步骤,三方服务端向三方前端返回由开放平台服务端生成的上传令牌。该上传令牌与触发视频分片上传操作所需的第三类参数和触发视频合成操作所需的第四类参数具有映射关系。
85.在第2步骤,三方前端调用开放平台的sdk并填入参数。这里填入的参数包括上传令牌。这里的sdk包括用以进行视频分片上传的第三应用程序编程接口(例如图8中的视频文件分片上传接口)和用以进行视频分片合成的第四应用程序编程接口(例如图8中的视频文件分片合成接口)。
86.在第3步骤,三方前端在本地对视频文件进行切片操作。在该示例中,sdk包括对视频文件进行切片的功能或函数,sdk通过第3步骤进行本地视频文件的切片操作。
87.在第4步骤,三方前端调用开放平台服务端的视频文件分片上传接口。开放平台服务端根据上传令牌解析出触发视频分片上传流程所需的第三类参数并执行视频分片上传操作。
88.在第5步骤,开放平台服务端根据视频分片上传操作的执行情况返回消息体。这里的消息体可以包括三类参数,分别是{code、message、data},code为0表示上传成功,code为其他值表示上传失败,message为文案描述,data为数据(例如上传令牌)。
89.循环执行第4、5步骤,直到所有的视频分片上传操作执行完成,进入第6步骤。
90.在第7步骤,三方前端调用开放平台服务端的视频文件分片合成接口。开放平台服务端根据上传令牌解析出触发视频分片合成流程所需的第四类参数并执行视频分片合成操作。
91.在第8步骤,开放平台服务端根据视频分片合成操作的执行情况返回消息体。
92.根据本公开实施例提供的向开放平台上传视频的方法,可以通过可供第三方应用程序的前端集成的软件开发工具包,使得第三方应用程序的前端用户直接将视频文件上传到开放平台,而不必占用第三方应用程序的服务器带宽和存储空间,降低了第三方应用程序的技术成本。
93.图9示出了根据本公开的向开放平台上传视频的方法的又一个示例的流程示意图。
94.如图9所示,该向开放平台上传视频的方法900包括:
95.步骤s902:生成与视频上传任务相关联的第二类参数,其中,所述上传令牌由所述
开放平台基于所述第二类参数生成。
96.在该示例中,图1中的终端设备可以生成与视频上传任务相关联的第二类参数。视频上传任务可以包括哪个前端用户要进行视频上传、前端用户要上传哪些视频文件等。第二类参数与当前的视频上传任务相关联,第二类参数可以包括前端用户的授权令牌(参数名:access_token)、视频的文件名称(参数名:name)等。前端用户可以选择当前要上传的本地视频文件,点击上传按钮后,前端即可以生成第二类参数。
97.在该示例中,开放平台可以根据第二类参数生成上传令牌。例如,开放平台可以对前端用户的授权令牌进行鉴权,在鉴权通过后生成一个随机字符串(即上传令牌)来标识存储空间的地址索引,然后将第二类参数与随机字符串生成映射并将第二类参数组装成数据结构存储到开放平台的存储器中。
98.在一些示例中,开放平台还包括用以进行视频上传预处理的第二应用程序编程接口,上传令牌由应用程序服务器端通过调用第二应用程序编程接口并传入第二类参数而生成。在该示例中,视频上传预处理操作可以包括对视频文件进行初始化,图1中的服务器101通过调用第二应用程序编程接口可以获得开放平台提供的对视频文件进行初始化的能力。在该示例中,图1中的服务器101可以根据第二应用程序编程接口协议规范拼装成url,通过发送http请求到开放平台即能获得对视频文件进行初始化的能力。示例地,第二应用程序编程接口协议规范包括请求url、url参数(例如access_token)、body参数(例如name)等。
99.步骤s904:获取上传令牌,其中,所述上传令牌与触发视频分片上传操作所需的第三类参数和触发视频合成操作所需的第四类参数具有映射关系。
100.步骤s906:调用所述第三应用程序编程接口并传入所述上传令牌以执行视频分片上传操作。
101.步骤s908:调用所述第四应用程序编程接口并传入所述上传令牌以执行视频分片合成操作。
102.图10示出了根据本公开实施例的向开放平台上传视频的方法的又一个示例交互流程。如图10所示,该向开放平台上传视频的方法包括:
103.在第1步骤,在三方前端用户选择本地视频文件、点击上传按钮后,三方前端可以生成第二类参数并调用三方服务端、传入第二类参数。第二类参数可以包括前端用户的授权令牌(参数名:access_token)、视频的文件名称(参数名:name)等。
104.在第2步骤,三方服务端可以调用开放平台的视频文件上传预处理接口。开放平台可以根据第二类参数生成上传令牌。例如,开放平台可以对前端用户的授权令牌进行鉴权,在鉴权通过后生成一个随机字符串(即上传令牌)来标识存储空间的地址索引,然后将第二类参数与随机字符串生成映射并将第二类参数组装成数据结构存储到开放平台的存储器中。
105.在第3步骤,开放平台服务端向三方服务端通过消息体返回上传令牌。
106.在第4步骤,三方服务端向三方前端返回由开放平台服务端生成的上传令牌。该上传令牌与触发视频分片上传操作所需的第三类参数和触发视频合成操作所需的第四类参数具有映射关系。
107.在第5步骤,三方前端调用开放平台的sdk并填入参数。这里填入的参数包括上传令牌。这里的sdk包括用以进行视频分片上传的第三应用程序编程接口(例如图10中的视频
文件分片上传接口)和用以进行视频分片合成的第四应用程序编程接口(例如图10中的视频文件分片合成接口)。
108.在第6步骤,三方前端在本地对视频文件进行切片操作。在该示例中,sdk包括对视频文件进行切片的功能或函数,sdk通过第3步骤进行本地视频文件的切片操作。
109.在第7步骤,三方前端调用开放平台服务端的视频文件分片上传接口。开放平台服务端根据上传令牌解析出触发视频分片上传流程所需的第三类参数并执行视频分片上传操作。
110.在第8步骤,开放平台服务端根据视频分片上传操作的执行情况返回消息体。这里的消息体可以包括三类参数,分别是{code、message、data},code为0表示上传成功,code为其他值表示上传失败,message为文案描述,data为数据(例如上传令牌)。
111.循环执行第7、8步骤,直到所有的视频分片上传操作执行完成,进入第9步骤。
112.在第10步骤,三方前端调用开放平台服务端的视频文件分片合成接口。开放平台服务端根据上传令牌解析出触发视频分片合成流程所需的第四类参数并执行视频分片合成操作。
113.在第11步骤,开放平台服务端根据视频分片合成操作的执行情况返回消息体。
114.在一些可选的示例中,上传令牌可以具有物理有效期,在开放平台执行视频文件分片上传操作或视频文件分片合成操作之前,开放平台还对上传令牌进行鉴权以确定上传令牌处于物理有效期内。可选地,上传令牌可以设置较短的物理有效期,例如一天或两天。图11示出了根据本公开的开放平台的内部对上传令牌进行鉴权的流程的一个示例。图11中的第4步骤“调用视频文件分片上传接口,传入上传令牌”对应于图8中的第4步骤“调用视频文件分片上传接口”,图11中的第5步骤“返回消息体”对应于与图8中的第5步骤“返回消息体”,图11中的第7步骤“调用视频文件分片合成接口”对应于图8中的第7步骤“调用视频文件分片合成接口”,图11中的第8步骤“返回消息体”对应于与图8中的第8步骤“返回消息体”,关于图11中第4步骤、第5步骤、第7步骤、第8步骤的描述可以参见上文中结合图8的相关描述。
115.如图11所示,开放平台可以包括接口服务平台、视频云平台、授权服务平台。在第4-1步骤,视频云平台可以调用授权服务平台的上传令牌鉴权接口。在第4-2步骤,授权服务平台可以从存储单元(例如redis)读取第三类参数并对上传令牌进行鉴权以确定上传令牌处于物理有效期内。在第4-3步骤,若上传令牌处于物理有效期内,授权服务平台可以返回关于鉴权成功的消息体以及第三类参数。第三类参数为视频云平台执行视频文件分片上传操作所必须的参数。在第4-4步骤,视频云平台根据第三类参数以及视频文件分片的二进制流(在第4步骤传入)执行视频上传操作。
116.在第7-1步骤,接口服务平台可以调用授权服务平台的上传令牌鉴权接口。在第7-2步骤,授权服务平台可以从存储单元(例如redis)读取第四类参数并对上传令牌进行鉴权以确定上传令牌处于物理有效期内。在第7-3步骤,若上传令牌处于物理有效期内,授权服务平台可以返回关于鉴权成功的消息体。在第7-4步骤,接口服务平台可以调用视频云平台的视频文件分片合成接口并传入上传令牌。在第7-5步骤,视频云平台可以调用授权服务平台的上传令牌鉴权接口。在第7-6步骤,授权服务平台可以从存储单元(例如redis)读取第四类参数并对上传令牌进行鉴权以确定上传令牌处于物理有效期内。在第7-7步骤,若上传
令牌处于物理有效期内,授权服务平台可以返回关于鉴权成功的消息体以及第四类参数。在第7-8步骤,视频云平台根据第四类参数执行视频文件分片合成(即图11中的视频合成)。在第7-9步骤,视频云平台可以返回关于视频文件分片合成成功或失败的消息体。
117.在另一些示例中,上传令牌还具有法律有效期,在开放平台执行视频文件分片上传操作或视频文件分片合成操作之前,开放平台还对上传令牌进行鉴权以确定上传令牌处于法律有效期内。在一些场景下,当上传令牌还处于物理有效期时,前端用户可以主动取消当前的视频文件分片上传操作或视频文件分片合成操作,此时开放平台应中断当前的视频文件分片上传操作或视频文件分片合成操作以规避法律风险。基于此,可以为上传令牌设置法律有效期,当上传令牌处于法律有效期时,即前端用户继续授权当前的视频文件分片上传操作或视频文件分片合成操作;当上传令牌不处于法律有效期时,即前端用户取消继续授权当前的视频文件分片上传操作或视频文件分片合成操作。在该示例中,对上传令牌的法律有效期进行鉴权的流程与对上传令牌的物理有效期进行鉴权的流程相似,具体可以参见本文结合图11的相关描述。
118.根据本公开的实施例提供的向开放平台上传视频的方法,通过有效期较短的上传令牌可以将第三方应用程序的重要数据保护在服务端,降低数据安全的风险。
119.在一些可选的示例中,图7或图9中示出的向开放平台上传视频的方法还包括:对视频进行切片并生成与视频分片上传任务相关联的第五类参数。视频分片上传任务可以包括当前要上传哪一个视频文件分片、视频文件分片的内容。在该示例中,第五类参考可以包括视频分片编号(参数名:part_number)、视频分片二进制数据流。在该示例中,第五类参数可以在图8中的第4步骤传入开放平台或者在图10中的第7步骤传入开放平台。
120.图12示了根据本公开的各个实施例中的上传令牌的生成方法的一个示例流程。如图12所示,在第1步骤,三方服务端可以调用视频文件上传预处理接口,并传入参数client_id、access_toke、name;在第2步骤,开放平台的接口服务平台可以调用授权服务平台的getuploadtoken方法,并传入参数client_id、access_toke、name;在第3步骤,授权服务平台对access_toke进行鉴权并解析出参数uid;在第4步骤,授权服务平台生成上传令牌;在第5步骤,授权服务平台将参数client_id、access_toke、name、uid与上传令牌生成映射,写入redis中;在第6步骤,授权服务平台返回上传令牌;在第7步骤,调用视频云平台的视频文件上传预处理接口,传入上传令牌;在第8步骤,视频云平台调用授权服务平台的上传令牌鉴权接口;在第9步骤,从redis中读取执行视频文件上传预处理操作所需的参数(包括client_id、uid、name);在第10步骤,对上传令牌进行鉴权以确定上传令牌处于物理有效期和/或法律有效期;在第11步骤,授权服务平台返回执行视频文件上传预处理操作所需的参数(包括client_id、uid、name);在第12步骤,视频云平台执行对视频文件的初始化操作,并生成执行视频文件上传操作所需的第一类参数或生成执行视频文件分片上传操作所需的第三类参数和执行视频文件分片合成操作所需的第四类参数(包括upos_uri、upload_id、cid、filename);在第13步骤,用client_id、uid、name、upos_uri、upload_id、cid、filename绑定上传令牌;在第14步骤,将这些参数更新到上传令牌绑定的内容里,写入到redis中;在第15步骤,返回更新后的上传令牌。
121.图13示出了根据本公开的实施例的向开放平台上传视频的装置的示例性框图。如图13所示,所述开放平台包括用以进行视频上传的第一应用程序编程接口,该装置1300包
括:获取模块1301,其配置为获取上传令牌,其中,所述上传令牌与触发视频上传操作所需的第一类参数具有映射关系;调用模块1302,其配置为调用所述第一应用程序编程接口并传入所述上传令牌以执行视频上传操作。
122.根据本公开的实施例提供的向开放平台上传视频的装置可以通过可供第三方应用程序的前端集成的软件开发工具包,为第三方应用程序提供视频文件的上传能力,降低了第三方应用程序的技术成本。
123.应当理解,图13中所示装置1300的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置1300及其所包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
124.在一些示例中,所述装置1300还包括:生成模块,其配置为生成与视频上传任务相关联的第二类参数,其中,所述上传令牌由所述开放平台基于所述第二类参数生成。
125.在一些示例中,所述第二类参数包括应用程序用户的授权令牌、所述视频的文件名称。
126.在一些示例中,所述第一类参数包括应用程序的标识、存储空间的路径、所述视频上传操作的标识。
127.在一些示例中,所述开放平台还包括用以进行视频上传预处理的第二应用程序编程接口,所述上传令牌由应用程序服务器端通过调用所述第二应用程序编程接口并传入所述第二类参数而生成。
128.在一些示例中,所述上传令牌为具有地址索引功能的随机字符串。
129.在一些示例中,所述上传令牌具有物理有效期,在所述开放平台执行视频上传操作之前,所述开放平台还对所述上传令牌进行鉴权以确定所述上传令牌处于所述物理有效期内。
130.在一些示例中,所述上传令牌还具有法律有效期,在所述开放平台执行视频上传操作之前,所述开放平台还对所述上传令牌进行鉴权以确定所述上传令牌处于所述法律有效期内。
131.图14示出了根据本公开的实施例的向开放平台上传视频的装置的示例性框图。如图14所示,所述开放平台包括用以进行视频分片上传的第三应用程序编程接口和用以进行视频分片合成的第四应用程序编程接口,该装置1400包括:获取模块1401,获取上传令牌,其中,所述上传令牌与触发视频分片上传操作所需的第三类参数和与触发视频分片合成操作所需的第四类参数具有映射关系;第一调用模块1402,其配置为调用所述第三应用程序编程接口并传入所述上传令牌以执行视频分片上传操作;第二调用模块1403,其配置为调用所述第四应用程序编程接口并传入所述上传令牌以执行视频分片合成操作。
132.根据本公开的实施例提供的向开放平台上传视频的装置可以通过可供第三方应用程序的前端集成的软件开发工具包,为第三方应用程序提供视频文件的上传能力,降低了第三方应用程序的技术成本。
133.应当理解,图14中所示装置1400的各个模块可以与参考图4描述的方法400中的各个步骤相对应。由此,上面针对方法400描述的操作、特征和优点同样适用于装置1400及其所包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
134.在一些示例中,所述装置1400还包括:第一生成模块,其配置为生成与视频上传任
务相关联的第二类参数,其中,所述上传令牌由所述开放平台基于所述第二类参数生成。
135.在一些示例中,所述第二类参数包括应用程序终端用户的授权令牌、所述视频的文件名称。
136.在一些示例中,所述第三类参数或所述第四类参数包括应用程序的标识、存储空间的路径、所述视频分片上传操作的标识。
137.在一些示例中,所述装置还包括:第二生成模块,其配置为对视频进行切片并生成与视频分片上传任务相关联的第五类参数,所述第一调用模块进一步配置为:调用所述第三应用程序编程接口并传入所述上传令牌和所述第五类参数以执行视频分片上传操作。
138.在一些示例中,所述第五类参数包括视频分片编号和视频分片。
139.在一些示例中,所述开放平台还包括用以进行视频上传预处理的第二应用程序编程接口,所述上传令牌由应用程序服务器端通过调用所述第二应用程序编程接口并传入所述第二类参数而生成。
140.在一些示例中,所述上传令牌为具有地址索引功能的随机字符串。
141.在一些示例中,所述上传令牌具有物理有效期,在所述开放平台执行视频分片上传操作或执行视频分片合成操作之前,所述开放平台还对所述上传令牌进行鉴权以确定所述上传令牌处于所述物理有效期内。
142.在一些示例中,所述上传令牌还具有法律有效期,在所述开放平台执行视频分片上传操作或执行视频分片合成操作之前,所述开放平台还对所述上传令牌进行鉴权以确定所述上传令牌处于所述法律有效期内。
143.图15示出了可以用来实施本公开的实施例的示例电子设备1500的示意性框图。参见图15,现将描述可以作为本公开的服务器或客户端的电子设备1500的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。如图15所示,电子设备1500包括计算单元1501,其可以根据存储在只读存储器(rom)1502中的计算机程序或者从存储单元1508加载到随机访问存储器(ram)1503中的计算机程序,来执行各种适当的动作和处理。在ram 1503中,还可存储设备1500操作所需的各种程序和数据。计算单元1501、rom 1502以及ram 1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。设备1500中的多个部件连接至i/o接口1505,包括:输入单元1506,例如键盘、鼠标等;输出单元1507,例如各种类型的显示器、扬声器等;存储单元1508,例如磁盘、光盘等;以及通信单元1509,例如网卡、调制解调器、无线通信收发机等。通信单元1509允许设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
144.计算单元1501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1501执行上文所描述的各个方法和
处理,例如向开放平台上传视频的方法。例如,在一些实施例中,向开放平台上传视频的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1508。在一些实施例中,计算机程序的部分或者全部可以经由rom 1502和/或通信单元1509而被载入和/或安装到设备1500上。当计算机程序加载到ram 1503并由计算单元1501执行时,可以执行上文描述的向开放平台上传视频的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行向开放平台上传视频的方法。
145.结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块、电路和算法过程可以实现为电子硬件、计算机软件或两者的组合。硬件和软件的可互换性已经在功能方面进行了一般性描述,并且在上述各种说明性组件、块、模块、电路和过程中进行了说明。这种功能是以硬件还是软件实现取决于特定的应用和对整个系统的设计限制。
146.用于实现结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块和电路的硬件和数据处理装置可以用通用单芯片或多芯片处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计成执行本文所描述的功能的其任意组合来实现或执行。通用处理器可以是微处理器或任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、一个或多个与dsp内核结合的微处理器、或者任何其他这样的配置。在一些方面中,特定的过程和方法可以由特定于给定功能的电路来执行。
147.在一个或多个方面,所描述的功能可以在硬件、数字电子电路、计算机软件、固件(包括本说明书中公开的结构及其等同结构)或其任意组合中实现。本说明书中所描述的主题的方面也可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,该一个或多个计算机程序被编码在计算机存储介质上用于由数据处理装置执行或控制数据处理装置的操作。
148.如果以软件实现,该功能可以作为一个或多个指令或代码存储或传输到计算机可读介质上。本文公开的方法或算法的过程可以在处理器可执行的软件模块中实现,该软件模块可以驻留在计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括能够将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,此计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或者可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都可以被恰当地称为计算机可读介质。本文使用的盘(disk)和盘(disc)包括高密度光盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘和蓝光光盘,其中盘(disk)通常磁性地复制数据,而盘(disc)用激光光学地复制数据。以上的组合也应该包括在计算机可读介质的范围内。附加地,方法或算法的操作可以作为机器可读介质和计算机可读介质上的代码和指令的一个或任意组合或集合,其可以被结合到计算机程序产品中。
149.本公开中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例、计算机可读存储介质实施例、以及计算机程序产品实施例而言,由于其基
本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1