一种多媒体数据的云存储、云下载方法及相关装置与流程

文档序号:11157595
一种多媒体数据的云存储、云下载方法及相关装置与制造工艺

本申请涉及云存储领域,尤其是涉及一种多媒体数据的云存储、云下载方法及相关装置。



背景技术:

随着多媒体数据的存储需求的快速增长,传统的块存储等存储技术已经不能满足高并发、高吞吐以及高性能等特性需求。而云存储技术由于其所具有的良好特性,应用范围越来越广泛。

如图1所示,目前多媒体数据的云存储方式包括:视频采集设备等推送设备向服务器推送多媒体数据,服务器本地缓存该多媒体数据,并将缓存的多媒体数据存储到云存储设备中。云下载方式包括:用户设备向服务器发送下载请求,服务器从云存储设备中查找并本地缓存多媒体数据,将缓存的多媒体数据发送至用户设备。

显然,在从云存储设备存储或者下载多媒体数据时,都需要通过服务器进行本地缓存,占用了服务器的资源。尤其当多个推送设备同时向云存储设备存储多媒体数据,或者多个用户设备同时从云存储设备中下载多媒体数据时,服务器需要对大量的多媒体数据进行本地缓存,此时将会占用服务器大量的资源。对服务器的资源的占用,导致服务器的硬件成本较高。



技术实现要素:

本申请解决的技术问题在于提供一种多媒体数据的云存储、云下载方法及相关装置,以实现向云存储设备存储或者从云存储设备下载多媒体数据时,不需要服务器进行本地缓存,减少占用的服务器的资源,从而节省硬件成本。

为此,本申请解决技术问题的技术方案是:

本申请提供了一种多媒体数据的云存储方法,所述方法包括:

推送设备向服务器发送验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证;

所述推送设备接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的存储权限信息;

所述推送设备对多媒体数据进行本地缓存;

所述推送设备利用所述存储权限信息,将本地缓存的多媒体数据存储在所述云存储设备的所述指定地址。

可选的,所述方法还包括:

所述推送设备获取所述多媒体数据的关键帧信息,根据所述关键帧信息生成索引文件;

所述推送设备利用所述存储权限信息,将所述索引文件存储在所述云存储设备的所述指定地址。

可选的,所述方法还包括:

所述推送设备在将本地缓存的多媒体数据存储在所述指定地址之前,对所述多媒体数据中的关键帧进行加密;

所述推送设备在将所述索引文件存储在所述指定地址之前,在所述关键帧信息中添加用于表示所述关键帧已加密的信息。

可选的,所述方法还包括:

所述推送设备生成标签信息,所述标签信息用于描述所述多媒体数据的数据特征;

所述推送设备在将所述索引文件存储在所述指定地址之前,在所述索引文件中添加所述标签信息。

可选的,所述方法还包括:

所述推送设备生成签名信息,所述签名信息能够唯一标识所述多媒体数据的关键帧;

所述推送设备在将本地缓存的多媒体数据存储在所述指定地址之前,在所述多媒体数据的用户自定义信息段中添加所述签名信息。

可选的,所述推送设备对多媒体数据进行本地缓存,包括:

所述推送设备将多媒体数据依次缓存为多个切片数据;

所述推送设备将本地缓存的多媒体数据存储在所述指定地址,包括:

所述推送设备将依次缓存的多个切片数据,利用追加式对象存储方式存储在所述指定地址。

本申请提供了一种权限验证方法,用于云存储过程中,所述方法包括:

服务器接收推送设备发送的验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证;

所述服务器验证出所述推送设备具有所述存储权限;

所述服务器生成对云存储设备上的指定地址的存储权限信息;

所述服务器向所述推送设备发送验证成功消息,所述验证成功消息中包括所述存储权限信息。

可选的,所述验证请求还指示出所述推送设备待存储的多媒体数据;

在生成所述访问权限信息之前,所述方法还包括:

若所述服务器确定出所述云存储设备不存在所述多媒体数据,则在所述云存储设备上生成指定文件夹,并将所述指定文件夹对应的地址作为所述指定地址;

若所述服务器确定出所述云存储设备存在所述多媒体数据中的部分数据,则将所述部分数据所位于的地址作为所述指定地址。

可选的,所述多媒体数据的第一级目录对应采集设备标识,第二级目录对应存储时间。

本申请提供了一种多媒体数据的云下载方法,所述方法包括:

用户设备向服务器发送验证请求,所述验证请求用于请求对所述推送设备的下载权限进行验证;

所述用户设备接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的下载权限信息;

所述用户设备利用所述下载权限信息,从所述指定地址中下载多媒体数据。

可选的,所述方法还包括:

所述用户设备利用所述下载权限信息,从所述指定地址中下载索引文件,所述索引文件中包括所述多媒体数据的关键帧信息。

可选的,所述方法还包括:

所述用户设备对所述索引文件进行解析获得所述关键帧信息;

所述用户设备根据所述关键帧信息播放所述多媒体数据。

可选的,所述方法还包括:

若所述用户设备从关键帧信息中获取到关键帧已加密的信息,所述用户设备在根据所述关键帧信息播放所述多媒体数据之前,对所述关键帧进行解密。

本申请提供了一种权限验证方法,用于云下载过程中,所述方法包括:

服务器接收用户设备发送的验证请求,所述验证请求用于请求对所述用户设备的下载权限进行验证;

所述服务器验证出所述用户设备具有所述下载权限;

所述服务器生成对云存储设备上的指定地址的下载权限信息;

所述服务器向所述用户设备发送验证成功消息,所述验证成功消息中包括所述下载权限信息。

可选的,所述方法还包括:

若所述用户设备处于直播状态,所述服务器获取存储时间最新的多媒体数据,并将所述存储时间最新的多媒体数据的地址作为所述指定地址;

若所述用户设备处于点播状态,所述服务器获取所述用户设备待点播数据的标识,将所述待点播数据的标识对应的存储地址,作为所述指定地址。

本申请提供了一种推送设备,包括:发送单元、接收单元和缓存单元;

发送单元,用于向服务器发送验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证;

接收单元,用于接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的存储权限信息;

缓存单元,用于对多媒体数据进行本地缓存;

所述发送单元还用于利用所述存储权限信息,将本地缓存的多媒体数据存储在所述云存储设备的所述指定地址。

可选的,还包括:第一生成单元,用于获取所述多媒体数据的关键帧信息,根据所述关键帧信息生成索引文件;

所述发送单元还用于利用所述存储权限信息,将所述索引文件存储在所述云存储设备的所述指定地址。

可选的,还包括:

加密单元,用于在所述发送单元将本地缓存的多媒体数据存储在所述指定地址之前,对所述多媒体数据中的关键帧进行加密;

第一添加单元,用于在所述发送单元将所述索引文件存储在所述指定地址之前,在所述关键帧信息中添加用于表示所述关键帧已加密的信息。

可选的,还包括:

第二生成单元,用于生成标签信息,所述标签信息用于描述所述多媒体数据的数据特征;

第二添加单元,用于在所述发送单元将所述索引文件存储在所述指定地址之前,在所述索引文件中添加所述标签信息。

可选的,还包括:

第三生成单元,用于生成签名信息,所述签名信息能够唯一标识所述多媒体数据的关键帧;

第三添加单元,用于在所述发送单元将本地缓存的多媒体数据存储在所述指定地址之前,在所述多媒体数据的用户自定义信息段中添加所述签名信息。

可选的,所述缓存单元具体用于,将多媒体数据依次缓存为多个切片数据;

当将本地缓存的多媒体数据存储在所述指定地址时,所述发送单元具体用于将依次缓存的多个切片数据,利用追加式对象存储方式存储在所述指定地址。

本申请提供了一种服务器,所述服务器包括:

接收单元,用于接收推送设备发送的验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证;

验证单元,用于验证出所述推送设备具有所述存储权限;

生成单元,用于在所述验证单元验证出所述推送设备具有所述存储权限之后,生成对云存储设备上的指定地址的存储权限信息;

发送单元,用于向所述推送设备发送验证成功消息,所述验证成功消息中包括所述存储权限信息。

可选的,所述验证请求还指示出所述推送设备待存储的多媒体数据;所述服务器还包括:确定单元;

所述确定单元还用于,在所述生成单元生成所述访问权限信息之前,若确定出所述云存储设备不存在所述多媒体数据,则在所述云存储设备上生成指定文件夹,并将所述指定文件夹对应的地址作为所述指定地址;若确定出所述云存储设备存在所述多媒体数据中的部分数据,则将所述部分数据所位于的地址作为所述指定地址。

可选的,所述多媒体数据的第一级目录对应采集设备标识,第二级目录对应存储时间。

本申请提供了一种用户设备,包括:

发送单元,用于向服务器发送验证请求,所述验证请求用于请求对所述推送设备的下载权限进行验证;

接收单元,用于接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的下载权限信息;

下载单元,用于利用所述下载权限信息,从所述指定地址中下载多媒体数据。

可选的,所述下载单元还用于,利用所述下载权限信息,从所述指定地址中下载索引文件,所述索引文件中包括所述多媒体数据的关键帧信息。

可选的,还包括:

解析单元,用于对所述索引文件进行解析获得所述关键帧信息;

播放单元,用于根据所述关键帧信息播放所述多媒体数据。

可选的,还包括:解密单元,用于若从关键帧信息中获取到关键帧已加密的信息,在根据所述关键帧信息播放所述多媒体数据之前,对所述关键帧进行解密。

本申请提供了一种服务器,所述方法包括:

接收单元,用于接收用户设备发送的验证请求,所述验证请求用于请求对所述用户设备的下载权限进行验证;

验证单元,用于验证出所述用户设备具有所述下载权限;

生成单元,用于在所述验证单元验证出所述用户设备具有所述下载权限之后,生成对云存储设备上的指定地址的下载权限信息;

发送单元,用于向所述用户设备发送验证成功消息,所述验证成功消息中包括所述下载权限信息。

可选的,还包括:获取单元,用于若所述用户设备处于直播状态,获取存储时间最新的多媒体数据,并将所述存储时间最新的多媒体数据的地址作为所述指定地址;若所述用户设备处于点播状态,获取所述用户设备待点播数据的标识,将所述待点播数据的标识对应的存储地址,作为所述指定地址。

通过上述技术方案可知,本申请实施例在进行云存储时,由推送设备向服务器发送验证请求,使得服务器对推送设备的存储权限进行验证,若服务器验证出推送设备具有存储权限,推送设备会接收到服务器发送的验证成功消息,推送设备根据验证成功消息中的存储权限信息,将推送设备本地缓存的多媒体数据存储在云存储设备的指定地址。本申请实施例在进行云下载时,由用户设备向服务器发送验证请求,使得服务器对用户设备的下载权限进行验证,若服务器验证出用户设备具有下载权限,用户设备会接收到服务器发送的验证成功消息,用户设备根据验证成功消息中的下载权限信息,从云存储设备的指定地址中下载多媒体数据。

可见,本申请实施例在对多媒体数据进行云存储或者云下载时,不需要服务器进行数据中转,即不需要服务器进行本地缓存,只需服务器进行权限验证,由推送设备直接存储多媒体数据或者由用户设备直接下载多媒体数据,因此减少了占用的服务器的资源,从而节省了硬件成本。此外,本申请实施例虽然无需服务器进行数据中转,但仍然会进行权限验证,在减少占用资源 的同时还保证了云存储或者云下载过程中的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。

图1为一种网络系统的结构示意图;

图2为本申请提供的云存储方法的一种实施例的信令交互图;

图3为本申请提供的云存储设备上的一种存储目录的示意图;

图4为本申请提供的云存储方法的另一种实施例的信令交互图;

图5为本申请提供的云下载方法的一种实施例的信令交互图;

图6为本申请提供的推送设备的一种实施例的结构示意图;

图7为本申请提供的服务器的一种实施例的结构示意图;

图8为本申请提供的用户设备的一种实施例的结构示意图;

图9为本申请提供的服务器的另一种实施例的结构示意图。

具体实施方式

图1为一种常见的网络系统,包括推送设备101、服务器102、云存储设备103和用户终端104。在本申请实施例中,多媒体数据包括音频数据、视频数据或者视频描述数据等。推送设备101指的是用于获取并推送多媒体数据的设备,例如可以具体为视频采集设备,或者用于从视频采集设备获取采集到的视频数据的设备。服务器102可以具体为流媒体服务器。云存储设备103指的是用于进行云存储的设备,例如可以具体为对象存储系统(Object-Based Storage System)。用户设备104可以具体为计算机、手机、PAD等电子设备。

目前,一种常见的多媒体数据的云存储方式包括:推送设备101向服务器102推送多媒体数据,服务器102本地缓存该多媒体数据,并将缓存的多媒体数据存储到云存储设备103中。一种常见的多媒体数据的云下载 方式包括:用户设备104向服务器102发送下载请求,服务器102从云存储设备103中查找并本地缓存多媒体数据,将缓存的多媒体数据发送至用户设备104。

上述云存储或者云下载的方式具有以下缺点。

1、无论是对多媒体数据进行云存储还是云下载的过程中,都需要通过服务器102进行本地缓存,占用了服务器的资源。尤其当多个推送设备同时向云存储设备103存储多媒体数据,或者多个用户设备同时从云存储设备103下载多媒体数据时,服务器102需要对大量的多媒体数据进行本地缓存,此时将会占用服务器大量的资源。对服务器的资源的占用,导致服务器的硬件成本较高。

2、在对多媒体数据进行云存储或者云下载的过程中,多媒体数据很容易被盗取或者篡改,导致安全性较低。

3、在对多媒体数据进行云存储或者云下载的过程中,若多媒体数据比较大,则需要将多媒体数据切分成多个切片数据,对多个切片数据进行依次存储或者下载。而当所有的切片数据没有全部存储或者下载时,多媒体数据不能被访问。

本申请实施例提供一种多媒体数据的云存储、云下载方法及相关装置,以实现向云存储设备存储或者从云存储设备下载多媒体数据时,不需要服务器进行本地缓存,减少占用的服务器的资源,从而节省硬件成本。

此外,本申请实施例还具有以下优点:能够提高多媒体数据的安全性;当多媒体数据被切分成多个切片数据后,可以对已存储或者下载的切片数据进行访问,即无需等到所有的切片数据全部存储或者下载后,就能访问多媒体数据。

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请实施例的核心思想包括但不仅限于:本申请实施例在云存储或者 云下载的过程中,不需要通过服务器对多媒体数据进行数据中转,而是由设备端(推送设备或者用户设备)直接与云存储设备交互,从而存储或者下载多媒体数据,也就是将对多媒体数据的处理压力从服务器分散到各个设备端。为了保证数据的安全性,设备端在与云存储设备交互之前,需要设备端向服务器发送验证请求,只有服务器对设备端的权限验证成功之后,设备端才能够根据服务器返回的权限信息存储或者下载多媒体数据。

首先对本申请实施例提供的云存储方法进行说明。

请参阅图2,本申请提供了多媒体数据的云存储方法的一种方法实施例。本实施例用于推送设备(例如图1所示的推送设备101)中,所述推送设备可以为视频采集设备。

本实施例的所述方法包括201、202、203、204和205,下面进行具体介绍。

201:推送设备向服务器发送验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证。

推送设备需要向云存储设备存储多媒体数据时,推送设备会向服务器发送所述验证请求,所述验证请求能够使得所述服务器验证所述推送设备是否具有在云存储设备上存储多媒体数据的权限。其中,验证请求中一般包括推送设备的标识,使得服务器能够识别所述推送设备。

本申请实施例中,服务器可以为流媒体服务器(例如图1所示的服务器102),也可以为鉴权服务器。

301:所述服务器接收推送设备发送的验证请求。

302:所述服务器验证出所述推送设备具有所述存储权限。

服务器在接收到所述验证请求后,会根据验证请求判断所述推送设备是否具有所述存储权限,如果有,则表示推送设备具有在云存储设备上存储多媒体数据的权限,因此执行303和304;如果否,则表示推送设备不具有在云存储设备上存储多媒体数据的权限,此时所述服务器可以向所述推送设备发送验证失败消息,所述推送设备可以重新发起验证。

303:所述服务器生成对云存储设备上的指定地址的存储权限信息。

当所述服务器验证出所述推送设备具有所述存储权限,所述服务器会分配指定地址,生成所述存储权限信息,所述存储权限信息中包括所述指定地址、云存储设备的标识以及操作动作类型为存储操作的信息,使得所述推送设备能够根据所述标识查找到所述云存储设备,并根据所述指定地址和所述信息,在所述云存储设备的所述指定地址存储数据。

其中,所述存储权限信息中还可以包括:所述推送设备的操作时间,用于限制所述推送设备对云存储设备进行存储操作的总时长。所述存储权限信息可以具体为访问令牌(token)。

在本申请实施例中,所述指定地址也可以理解为指定路径。举例说明,指定路径可以为:E:\ID_01\8月1日。

304:所述服务器向所述推送设备发送验证成功消息,所述验证成功消息中包括所述存储权限信息。

所述验证成功消息用于表示所述服务器验证出所述推送设备具有在云存储设备上的存储权限。

关于所述存储权限信息的说明见步骤303,这里不再赘述。

202:所述推送设备接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的存储权限信息。

关于所述验证成功消息和存储权限信息的说明见步骤303和304,这里不再赘述。

203:所述推送设备对多媒体数据进行本地缓存。

在本申请实施例中,由于不再通过服务器进行数据中转,而是由推送设备直接向云存储设备中存储数据,因此在推送设备本地进行数据缓存。

其中,由于多媒体数据一般都比较大,因此所述推送设备在对所述多媒体数据进行本地缓存的大小可以小于多媒体数据的大小,从而将多媒体数据依次缓存为多个切片数据,即相当于切分成多个切片数据并进行缓存。

需要说明的是,203与201的执行顺序不受限定,例如可以先执行201(即先向服务器验证),再执行203(即再缓存数据);或者,也可以先执行203,再执行201。

204:所述推送设备利用所述存储权限信息,将本地缓存的多媒体数据存储在所述云存储设备的所述指定地址。

本步骤在具体实现时,实际上是由推送设备将所述存储权限信息和缓存的多媒体数据发送至云存储设备,从而使得云存储设备(例如图1中的云存储设备103)执行401,即利用存储权限信息,将所述多媒体数据存储在所述指定地址。

本申请实施例中,若多媒体数据被切分成多个切片数据并依次缓存在推送设备,为了解决“当所有的切片数据没有全部存储时,多媒体数据不能被访问”的问题,推送设备可以将依次缓存的多个切片数据,利用追加式对象存储方式存储在所述指定地址。追加式对象存储方式指的是,除第一个切片数据外,其他切片数据都追加在前一个切片数据的后面,形成流式存储,直至达到多媒体数据的指定大小。追加式对象存储方式可以使得,当多媒体数据被切分后,可以对已存储的切片数据进行访问,即无需等到所有的切片数据全部存储后,就能访问所述多媒体数据。

通过上述技术方案可知,本实施例在对多媒体数据进行云存储时,不需要服务器进行数据中转,即不需要服务器进行本地缓存,只需服务器进行权限验证,由推送设备直接存储多媒体数据,因此将对多媒体数据的处理压力从服务器分散到各个推送设备,减少了占用的服务器的资源,从而节省了硬件成本。此外,本申请实施例虽然无需服务器进行数据中转,但仍然会由服务器进行权限验证,在减少占用资源的同时还保证了云存储过程中的安全性。

当多媒体数据具体为视频数据或其他具有关键帧的多媒体数据时,多媒体数据在解码或者播放解码时需要依赖于关键帧,例如,从关键帧开始播放或者其他帧在解码时需要基于关键帧。因此本申请实施例中所述推送设备还可以获取多媒体数据的关键帧信息,根据所述关键帧信息生成索引文件;并利用所述存储权限信息,将所述索引文件存储在所述云存储设备的所述指定地址,实际上就是在步骤204时,将存储权限信息、缓存的多媒体数据以及索引文件一并发送至服务器。从而能够快速定位到关键帧,实现快速播放或者解码多媒体数据。所述指定地址可以包括第一指定地址和第二指定地址,将所述多媒体数据存储在所述第一指定地址,将所述索引文件存储在所述第 二指定地址。

其中,所述关键帧信息可以包括关键帧的时间戳、关键帧的大小、以及关键帧在多媒体数据中的位置,使得其他设备(例如用户设备)能够根据所述关键帧信息定位关键帧。举例说明,若多媒体数据具体为基于H.264视频编码技术进行编码的视频数据(也可称为视频码流),关键帧信息中可以包括I帧(H.264的关键帧)的时间戳、I帧的大小、以及I帧在多媒体数据中的位置,用户设备在获取到关键帧信息后,可以定位到I帧,并从I帧开始播放该视频数据。

其中,若多媒体数据被切分成多个切片数据,所述推送设备在依次缓存多个切片数据时,可以依次判断当前缓存的切片数据中的每一帧是否为关键帧,如果是,则获取到所述关键帧信息。

本申请实施例中,验证请求中还可以指示出所述推送设备待存储的多媒体数据,例如所述验证请求中还包括推送设备待存储的多媒体数据的名称,从而使得服务器生成用于存储所述多媒体数据的指定地址。下面说明服务器对指定地址的一种生成方式。

所述验证请求还指示出所述推送设备待存储的多媒体数据,在所述服务器生成所述访问权限信息之前,若所述服务器确定出所述云存储设备不存在所述多媒体数据,例如所述推送设备第一次访问云存储设备,或者所述推送设备不是第一次访问云存储设备,但之前未在云存储设备中存储所述多媒体数据,则所述服务器在所述云存储设备上生成指定文件夹,并将所述指定文件夹的地址作为所述指定地址;若所述服务器确定出所述云存储设备存在所述多媒体数据中的部分数据,例如,推送设备已经向云存储设备中存储了多媒体数据的多个切片数据,则所述服务器将所述部分数据所位于的地址作为所述指定地址。

在本申请实施例中,所述服务器能够对云存储设备上的各个文件夹,即云存储设备上的文件目录进行管理。其中,所述服务器在建立文件夹时,可以按照一定的规则逐级建立。例如图3所示,所述多媒体数据的第一级目录对应采集设备标识,第二级目录对应存储时间,第二级目录下存储有所述多媒体数据和所述索引文件,下面具体说明。

第一级目录对应采集设备标识,指的是第一级目录按照采集设备标识进行区分。其中,采集设备标识指的是采集到待存储的多媒体数据的设备(即采集设备)的标识。例如采集设备具体为网络摄像机,则采集设备标识为网络摄像机的标识(IPC ID)。需要说明的是,采集设备与推送设备可以是同一设备,也可以是不同的设备。

第二级目录对应存储时间,指的是第二级目录按照存储多媒体数据的时间进行区分。其中该存储时间可以以天为单位,也就是说,存储时间位于不同天数(即不同日期)的多媒体数据所位于的第二级目录也不同。例如图3所示,存储时间分别为8月1日和8月2日的多媒体数据,分别位于不同的第二级目录。

第二级目录下存储有对应的所述多媒体数据和所述索引文件。例如图3所示,在存储时间为8月1日的第二级目录下,存储有多媒体数据01、索引文件01,……,多媒体数据10、和索引文件10。

其中,第二级目录下的各个多媒体数据在命名时,命名方式可以为:保存天数+采集设备标识+开始时间+总时长。其中,开始时间指的是得到多媒体数据开始录制的时间。

可见,这种文件建立方式,能够更快地查找多媒体数据,从而能够使得服务器端的管理软件逻辑更加简单,降低软件开发成本。

在本申请实施例中,为了提高多媒体数据的安全性,还可以进一步对关键帧进行加密和/或签名,下面分别说明。

首先说明加密方式。所述推送设备在将本地缓存的多媒体数据存储在所述指定地址之前,对所述多媒体数据中的关键帧进行加密。也就是说,可以在本地缓存之前,或者在本地缓存之后,对所述关键帧进行加密,加密后再将缓存的多媒体数据发送至云存储设备。并且,所述推送设备在将所述索引文件存储在所述指定地址之前,在所述关键帧信息中添加用于表示所述关键帧已加密的信息,从而使得其他设备(例如用户设备)能够根据关键帧信息判断出关键帧已加密。举例说明,通用加密算法(例如DES加密算法)对所述关键帧进行加密,解密时由用户设备输入密钥。

下面说明签名方式。本实施例还可以包括:所述推送设备生成签名信息,所述签名信息能够唯一标识所述多媒体数据的关键帧,从而能够实现关键帧的防篡改;所述推送设备在将本地缓存的多媒体数据存储在所述指定地址之前,在所述多媒体数据的用户自定义信息段中添加所述签名信息。举例说明,若所述多媒体数据为视频数据时,根据所述视频数据的I帧生成MD5(消息摘要算法第五版)码,在视频数据的SEI(H.264的增强型信息)的用户信息中添加该MD5码。

可见,本申请实施例中可以通过对关键帧加密和/或签名的方式,提高关键帧的安全性,从而提供了多媒体数据的安全性。

可选的,本申请实施例中还可以加入标签信息,从而实现方便查找以及防篡改的功能。具体地,本实施例还可以包括:所述推送设备生成标签信息,所述标签信息用于描述所述多媒体数据的数据特征;所述推送设备将所述索引文件存储在所述指定地址之前,在所述索引文件中添加所述标签信息,例如将所述标签信息添加在所述关键帧信息的后面。举例说明,若所述多媒体数据为视频数据,所述标签信息可以包括以下信息中的至少一项:与人相关的信息(例如视频数据中人为的个数、衣着颜色等特征)、与车相关的信息(例如视频数据中车辆的个数、车牌号、颜色、车型等特征)、和其他相关信息(例如与动物、非机动车相关的信息)。

下面本申请将提供一种更具体的方法实施例。

请参阅图4,本申请提供了多媒体数据的云存储方法的另一种方法实施例。本实施例以推送设备具体为视频采集设备,多媒体数据具体为视频数据,并且云存储设备具体为对象(object)存储系统为例加以说明。可以理解的是,上述限定不会对本申请其他实施例造成限制。本实施例用于所述视频采集设备中。

本实施例的所述方法包括5个阶段:对时和鉴权阶段、切分阶段、生成索引阶段、安全处理阶段以及上传阶段,下面分别对这5个阶段进行说明。

1、对时和鉴权阶段包括步骤501至504。

501:视频采集设备向服务器发起时间同步请求,服务器验证该时间同步请求有效后返回当前时间给视频采集设备,视频采集设备收到时间后与服务 器时间进行同步。

其中视频采集设备还可以判断是否对时成功,如果是,执行502,如果否,则重新对时。

502:视频采集设备判断是否存在有效token,如果是,则表示已完成对时和鉴权阶段,如果否,则执行503。

其中,该token指示出视频采集设备可以操作的指定地址(也可以理解为可以操作的视频object)、对象存储系统的标识、操作动作类型为存储操作的信息以及操作时间等。

503:视频采集设备向服务器发送验证请求,验证请求用于请求对所述推送设备的存储权限进行验证。

504:视频采集设备接收到服务器发送的验证成功消息,该验证成功消息包括服务器生成的token,接收到该token即相当于获取了向对象存储系统的指定地址存储数据的权限。

2、切分阶段包括505至508。

505:视频采集设备缓存视频数据中的一个视频帧。

506:视频采集设备判断视频数据是否被全部缓存,如果是,则执行508,如果否,则执行507。

507:视频采集设备判断当前缓存的视频帧是否达到预设切片大小,如果是,则执行508,如果否,则返回执行505。其中,当判断结果为是时,还可以返回执行505,继续缓存下一个切片数据。

508:视频采集设备根据当前缓存的视频帧形成数据包。

通过上述步骤505至508,能够将视频数据切分成多个数据包。例如,预设切片大小为64k字节,本实施例可以将视频数据切分成若干个64k字节的数据包,其中,最后一个数据包的大小可以小于64k字节。

3、生成索引阶段包括509和510。

509:在切分阶段中执行完505,即缓存一个视频帧之后,视频采集设备判断该视频帧是否为关键帧,例如判断是否为I帧,如果是,则执行510,如果否,例如该视频帧为B帧或者P帧,则不对该视频帧进行处理。

510:视频采集设备根据I帧生成索引对象(index object)。

在本实施例中,由于云存储设备具体为对象存储系统,因此视频数据和索引文件都可以作为对象进行存储,即分别作为视频对象和索引对象。

4、安全处理阶段包括511至514。

511:视频采集设备判断是否需要对I帧进行加密和/或签名,如果是,执行512,如果否,执行513。

512:视频采集设备对I帧进行加密和/或签名。

513:视频采集设备判断是否需要加标签信息,如果是,则执行514,如果否,则完成安全处理阶段。

514:视频采集设备在索引对象中加入标签信息,标签信息用于描述视频数据的数据特征。

5、上传阶段包括515至517。

515:当执行完除上传阶段外的其余4个阶段后,视频采集设备上传数据包、索引对象(如果有)和token,即,向对象存储系统发送上述数据。

其中,数据包按照追加式对象存储方式上传,出第一个数据包外的其他数据包都追加在前一个数据包的后面,形成视频流式存储,直至达到视频数据的指定大小。其中,完整的视频数据(即相当于一个视频对象)对应一个索引对象。

516:视频采集设备判断是否上传成功,如果是,则执行517,如果否,则返回执行515即重新上传数据。

其中,若上传失败,视频采集设备还可以检测是鉴权超时还是网络超时,如果是鉴权超时,则通过执行502至504重新鉴权,如果是网络超时,则重新上传数据。

517:结束流程。之后可以对其他视频数据进行存储。

上面从推送设备的角度,介绍了本申请提供的云存储方法。下面将从服务器的角度,介绍本申请对应提供的权限验证方法。

请参阅图2,本申请提供了权限验证方法的一种方法实施例,本实施例用于云存储过程中。

本实施例的所述方法包括:

301:所述服务器接收推送设备发送的验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证。

302:所述服务器验证出所述推送设备具有所述存储权限。

303:所述服务器生成对云存储设备上的指定地址的存储权限信息。

304:所述服务器向所述推送设备发送验证成功消息,所述验证成功消息中包括所述存储权限信息。

上述步骤301至304,已在云存储方法的实施例中进行了详细说明,因此这里不再赘述。

下面对本申请实施例提供的云下载方法进行说明。

请参阅图5,本申请提供了多媒体数据的云下载方法的一种方法实施例。本实施例用于用户设备(例如图1所示的用户设备104)中。

本实施例的所述方法包括601、602和603,下面进行具体介绍。

601:用户设备向服务器发送验证请求,所述验证请求用于请求对所述用户设备的下载权限进行验证。

用户设备需要从云存储设备下载多媒体数据时,用户设备会向服务器发送所述验证请求,所述验证请求能够使得所述服务器验证所述用户设备是否具有从云存储设备下载多媒体数据的权限。其中,验证请求中一般包括用户设备的标识,使得服务器能够识别所述用户设备。

701:所述服务器接收用户设备发送的验证请求。

702:所述服务器验证出所述用户设备具有所述下载权限。

服务器在接收到所述验证请求后,会根据验证请求判断所述用户设备是否具有所述下载权限,如果有,则表示用户设备具有在云存储设备上下载多媒体数据的权限,因此执行703;如果否,则表示用户设备不具有在云存储设备下载多媒体数据的权限,此时所述服务器可以向所述用户设备发送验证失败消息,所述用户设备可以重新发起验证。

其中,由于用户设备一般只对其对应的推送设备存储的数据具有下载权限,因此,所述服务器具体验证出的是,所述用户设备对该用户设备对应的 推送设备存储的数据具有下载权限。

703:所述服务器生成对云存储设备上的指定地址的下载权限信息。

当所述服务器验证出所述用户设备具有所述下载权限,所述服务器会获取指定地址(该指定地址一般为该用户设备对应的推送设备存储的数据的地址),并生成所述下载权限信息,所述下载权限信息中包括所述指定地址、云存储设备的标识以及操作动作类型为下载操作的信息,使得所述用户设备能够根据所述标识查找到所述云存储设备,并根据所述指定地址和所述信息,从所述云存储设备的所述指定地址下载数据。

其中,所述下载权限信息中还可以包括:所述用户设备的操作时间,用于限制所述用户设备对云存储设备进行下载操作的总时长。所述下载权限信息可以具体为访问令牌(token)。

704:所述服务器向所述用户设备发送验证成功消息,所述验证成功消息中包括所述下载权限信息。

所述验证成功消息用于表示所述服务器验证出所述用户设备具有在云存储设备上的下载权限。

关于所述下载权限信息的说明见步骤703,这里不再赘述。

602:所述用户设备接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的下载权限信息。

关于所述验证成功消息和下载权限信息的说明见步骤703和704,这里不再赘述。

603:所述用户设备利用所述下载权限信息,从所述指定地址中下载多媒体数据。本实施例还可以包括:所述用户设备利用所述下载权限信息,从所述指定地址中下载索引文件,所述索引文件中包括所述多媒体数据的关键帧信息。所述关键帧信息可以包括关键帧的时间戳、大小、以及关键帧在多媒体数据中的位置,使得用户设备能够根据所述关键帧信息定位关键帧

其中,603具体包括603A和603B。

603A:所述用户设备将所述下载权限信息发送给云存储设备。

云存储设备会根据该下载权限信息查找到所述指定地址对应存储的多媒 体数据件,并执行801,即,将该多媒体数据发送至所述用户设备。

603B:所述用户设备接收所述云存储设备发送的所述多媒体数据。

本申请实施例中,若多媒体数据被切分成多个切片数据并依次从云存储设备下载时,为了解决“当所有的切片数据没有全部下载时,多媒体数据不能被访问”的问题,用户设备可以将依次下载的多个切片数据,利用追加式对象存储方式下载在所述用户设备。该追加式对象存储方式可以使得,当多媒体数据被切分后,可以对已下载的切片数据进行访问,即无需等到所有的切片数据全部下载后,就能访问所述多媒体数据。

通过上述技术方案可知,本实施例在对多媒体数据进行云下载时,不需要服务器进行数据中转,即不需要服务器进行本地缓存,只需服务器进行权限验证,由用户设备直接下载多媒体数据,因此将对多媒体数据的处理压力从服务器分散到各个用户设备,减少了占用的服务器的资源,从而节省了硬件成本。此外,本申请实施例虽然无需服务器进行数据中转,但仍然会由服务器进行权限验证,在减少占用资源的同时还保证了云下载过程中的安全性。

可选的,本实施例还可以包括:所述用户设备对所述索引文件进行解析获得所述关键帧信息;所述用户设备根据所述关键帧信息播放所述多媒体数据。例如,用户设备可以通过索引文件中的关键帧信息,获取到关键帧在多媒体数据中的位置,并根据该位置播放多媒体数据。

可选的,所述方法还可以包括:若所述用户设备从关键帧信息中获取到关键帧已加密的信息,所述用户设备在根据所述关键帧信息播放所述多媒体数据之前,对所述关键帧进行解密。其中,所述用户设备可以提示用户输入密钥以进行解密。

在本申请实施例中,用户设备可以直播或者点播多媒体数据。下面分别说明。

若所述用户设备处于直播状态,所述服务器获取存储时间最新的多媒体数据,并将所述存储时间最新的多媒体数据的地址作为所述指定地址。

以按照图3所示的方式存储多媒体数据为例,服务器根据要访问的视频采集设备的标识以及当前日期,查找到对应的全部视频数据和索引文件,通过关键帧信息记录的时间信息并对比当前时间,查找到时间最新的关键帧信 息,并查找到该时间最新的关键帧信息对应的视频数据和索引文件,将该对应的视频数据和索引文件所位于的地址作为所述指定地址,从而生成下载权限信息。

若所述用户设备处于点播状态,所述服务器获取所述用户设备待点播数据的标识,将所述待点播数据的标识对应的存储地址,作为所述指定地址。其中所述待点播数据的标识可以包括采集设备标识和存储时间。

例如,用户设备可以根据要访问的视频采集设备的标识和待点播视频的时间,查找到对应的全部视频数据和索引文件,通过关键帧信息记录的时间信息查找到待点播视频的时间所对应的关键帧信息,并查找该对应的关键帧信息对应的视频数据和索引文件,将该对应的视频数据和索引文件所位于的地址作为所述指定地址,从而生成下载权限信息。

上面从用户设备的角度,介绍了本申请提供的云下载方法。下面将从服务器的角度,介绍本申请对应提供的权限验证方法。

请参阅图5,本申请提供了权限验证方法的另一种方法实施例,本实施例用于云下载过程中。

本实施例的所述方法包括:

701:所述服务器接收用户设备发送的验证请求,所述验证请求用于请求对所述用户设备的下载权限进行验证。

702:所述服务器验证出所述用户设备具有所述下载权限。

703:所述服务器生成对云存储设备上的指定地址的下载权限信息。

704:所述服务器向所述用户设备发送验证成功消息,所述验证成功消息中包括所述下载权限信息。

上述步骤701至704,已在云下载方法的实施例中进行了详细说明,因此这里不再赘述。

对应上述方法实施例,本申请还提供了对应的装置实施例,下面分别说明。

请参阅图6,本申请提供了推送设备的一种装置实施例。本实施例的推送设备可以为图1所示的推送设备101。

本实施例的推送设备包括:发送单元61、接收单元62和缓存单元63。

发送单元61用于向服务器发送验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证。

推送设备需要向云存储设备存储多媒体数据时,推送设备会向服务器发送所述验证请求,所述验证请求能够使得所述服务器验证所述推送设备是否具有在云存储设备上存储多媒体数据的权限。其中,验证请求中一般包括推送设备的标识,使得服务器能够识别所述推送设备。

本申请实施例中,服务器可以为流媒体服务器(例如图1所示的服务器102),也可以为鉴权服务器。

接收单元62,用于接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的存储权限信息。

服务器在接收到所述验证请求后,会根据验证请求判断所述推送设备是否具有所述存储权限,如果有,则表示推送设备具有在云存储设备上存储多媒体数据的权限,因此向推送设备发送验证成功消息;如果否,则表示推送设备不具有在云存储设备上存储多媒体数据的权限,此时所述服务器可以向所述推送设备发送验证失败消息,所述推送设备可以重新发起验证。

缓存单元63,用于对多媒体数据进行本地缓存。

由于多媒体数据一般都比较大,因此缓存单元63在对所述多媒体数据进行本地缓存的大小可以小于多媒体数据的大小,从而将多媒体数据依次缓存为多个切片数据,即相当于切分成多个切片数据并进行缓存。

发送单元61还用于利用所述存储权限信息,将本地缓存的多媒体数据存储在所述云存储设备的所述指定地址。

其中,发送单元61具体用于将所述存储权限信息和缓存的多媒体数据发送至云存储设备,从而使得云存储设备(例如图1中的云存储设备103)利用存储权限信息,将所述多媒体数据存储在所述指定地址。

本申请实施例中,若多媒体数据被切分成多个切片数据并依次缓存在推送设备,为了解决“当所有的切片数据没有全部存储时,多媒体数据不能被访问”的问题,发送单元61可以将依次缓存的多个切片数据,利用追加式对象存储方式存储在所述指定地址。

可选的,所述推送设备还包括:第一生成单元,用于获取所述多媒体数据的关键帧信息,根据所述关键帧信息生成索引文件;发送单元61还用于利用所述存储权限信息,将所述索引文件存储在所述云存储设备的所述指定地址。

可选的,所述推送设备还包括:加密单元,用于在发送单元61将本地缓存的多媒体数据存储在所述指定地址之前,对所述多媒体数据中的关键帧进行加密;第一添加单元,用于在发送单元61将所述索引文件存储在所述指定地址之前,在所述关键帧信息中添加用于表示所述关键帧已加密的信息。

可选的,所述推送设备还包括:第二生成单元,用于生成标签信息,所述标签信息用于描述所述多媒体数据的数据特征;第二添加单元,用于在所述发送单元将所述索引文件存储在所述指定地址之前,在所述索引文件中添加所述标签信息。

可选的,所述推送设备还包括:第三生成单元,用于生成签名信息,所述签名信息能够唯一标识所述多媒体数据的关键帧;第三添加单元,用于在所述发送单元将本地缓存的多媒体数据存储在所述指定地址之前,在所述多媒体数据的用户自定义信息段中添加所述签名信息。

可选的,所述缓存单元具体用于,将多媒体数据依次缓存为多个切片数据;当将本地缓存的多媒体数据存储在所述指定地址时,所述发送单元具体用于将依次缓存的多个切片数据,利用追加式对象存储方式存储在所述指定地址。

请参阅图7,本申请提供了服务器的一种装置实施例,本实施例的所述服务器可以用于云存储过程中。

本实施例的所述服务器包括:接收单元71、验证单元72、生成单元73和发送单元74。

接收单元71,用于接收推送设备发送的验证请求,所述验证请求用于请求对所述推送设备的存储权限进行验证。

验证单元72,用于验证出所述推送设备具有所述存储权限。

生成单元73,用于在验证单元72验证出所述推送设备具有所述存储权限之后,生成对云存储设备上的指定地址的存储权限信息。

发送单元74,用于向所述推送设备发送验证成功消息,所述验证成功消息中包括所述存储权限信息。

可选的,所述验证请求还指示出所述推送设备待存储的多媒体数据;所述服务器还包括:确定单元;所述确定单元还用于,在生成单元73生成所述访问权限信息之前,若确定出所述云存储设备不存在所述多媒体数据,则在所述云存储设备上生成指定文件夹,并将所述指定文件夹对应的地址作为所述指定地址,若确定出所述云存储设备存在所述多媒体数据中的部分数据,则将所述部分数据所位于的地址作为所述指定地址。

可选的,所述多媒体数据的第一级目录对应采集设备标识,第二级目录对应存储时间。

请参阅图8,本申请提供了用户设备的一种装置实施例。本实施例的用户设备可以为图1所示的用户设备104。

本实施例的所述用户设备包括:发送单元81、接收单元82和下载单元83。

发送单元81,用于向服务器发送验证请求,所述验证请求用于请求对所述推送设备的下载权限进行验证。

其中,验证请求中一般包括用户设备的标识,使得服务器能够识别所述用户设备。

接收单元82,用于接收所述服务器发送的验证成功消息,所述验证成功消息包括对云存储设备的指定地址的下载权限信息。

服务器在接收到所述验证请求后,会根据验证请求判断所述用户设备是否具有所述下载权限,如果有,则表示用户设备具有在云存储设备上下载多媒体数据的权限,因此向所述用户设备发送验证成功消息;如果否,则表示用户设备不具有在云存储设备下载多媒体数据的权限,此时所述服务器可以向所述用户设备发送验证失败消息,所述用户设备可以重新发起验证。

其中,由于用户设备一般只对其对应的推送设备存储的数据具有下载权限,因此,所述服务器具体验证出的是,所述用户设备对该用户设备对应的推送设备存储的数据具有下载权限。

下载单元83,用于利用所述下载权限信息,从所述指定地址中下载多媒体数据。

其中,下载单元83具体用于,将所述下载权限信息发送给云存储设备;接收所述云存储设备发送的所述多媒体数据。

本申请实施例中,若多媒体数据被切分成多个切片数据并依次从云存储设备下载时,下载单元83可以将依次下载的多个切片数据,利用追加式对象存储方式下载在所述用户设备。

可选的,下载单元83还用于,利用所述下载权限信息,从所述指定地址中下载索引文件,所述索引文件中包括所述多媒体数据的关键帧信息。

可选的,所述用户设备还包括:解析单元,用于对所述索引文件进行解析获得所述关键帧信息;播放单元,用于根据所述关键帧信息播放所述多媒体数据。

可选的,所述用户设备还包括:解密单元,用于若从关键帧信息中获取到关键帧已加密的信息,在根据所述关键帧信息播放所述多媒体数据之前,对所述关键帧进行解密。其中,所述用户设备可以提示用户输入密钥以进行解密。

请参阅图9,本申请提供了服务器的另一种装置实施例,本实施例的所述服务器可以用于云下载过程中。

本实施例的所述服务器包括:接收单元91、验证单元92、生成单元93和发送单元94。

接收单元91,用于接收用户设备发送的验证请求,所述验证请求用于请求对所述用户设备的下载权限进行验证。

验证单元92,用于验证出所述用户设备具有所述下载权限。

生成单元93,用于在验证单元92验证出所述用户设备具有所述下载权限之后,生成对云存储设备上的指定地址的下载权限信息。

发送单元94,用于向所述用户设备发送验证成功消息,所述验证成功消息中包括所述下载权限信息。

可选的,所述服务器还包括:获取单元,用于若所述用户设备处于直播状态,获取存储时间最新的多媒体数据,并将所述存储时间最新的多媒体数据的地址作为所述指定地址;若所述用户设备处于点播状态,获取所述用户设备待点播数据的标识,将所述待点播数据的标识对应的存储地址,作为所述指定地址。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步 骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1