云存储指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。使用者使用云存储,是使用整个云存储系统带来的一种数据访问服务。数据加密技术保证云存储中的数据不会被未授权的用户所访问,因为与普通的视频存储相比,云存储系统并不会直接给用户提供相应的资源文件的url。而是通过用户提交相应的认证信息后,结合用户的ip,用户的访问速度,随机选择云中的某个多媒体文件并且提供相应的流给客户端的播放器。

1、 多媒体文件的存储方式

多媒体文件在云存储的中的存储方式,主要采用分布式的存储方式。首先将完整的多媒体f进行分割成n份,每份用fn表示。同时分配给每一个fn一个唯一的标准符例如uuid(universally unique identifier)。在控制台,我们记录一个虚拟文件类fileclass,主要包括文件名、文件id、文件大小、第一块文件id、最后一块文件id。每一个fn也会对应一个fnclass主要包括id、fn大小、下一块fnid以及fn的存储地址。如图1所示。

采用分布式的文件存储方式,使同一个文件分成n份,只有通过一定的算法和获取到映射对象的情况下才能重新组装成一个完整的多媒体文件。这样保证了即使在知道资源路径的条件下,也不能获取整个多媒体文件使截获数据失去意义。图2是多媒体文件分布式存储的示意图。

2、 多媒体文件访问控制

多媒体文件以分布式方式存储在云中后,虽然对整个多媒体文件传输的安全性有了很大的提高,但是对于文件fn的访问控制是保护多媒体文件不被截获的主要手段。保护fn的访问的合法性主要在于服务器端和客户通过一定的加密算法来完成。

系统为每个客户端分配一个id和密钥,用于保证用户的操作是经过授权,合法的。access key id为系统加密算法分配的id;secret access key为系统加密算法分配的密钥,专用的客户端程序可以保证该密钥不泄露出去。所有对fn的操作都需要使用secret access key签名,系统根据id获得服务端的secret access key,重新计算一次签名,如果签名结果相匹配则说明该请求是合法的。否则系统认为请求是无效的返回错误信息。

用户可以在http请求中增加authorization(授权)的head来包含签名信息,表明这个消息已被授权。如果用户的请求中没有authentication字段,则认为是匿名访问。

具体实现方式是如系统分配给a用户access key id 为 aid, secret access key为akey。其中akey只有用户端和服务器知道。这些操作对于用户是透明的。客户端将如下

注:content-md5表示请求文件的id值, content-type表示请求内容的类型,date表示此次操作的时间,且必须为gmt格式 canonicalizedossheaders表示 http中的object user meta组合如果请求中的date时间和服务器的时间差该多媒体播放时长以上,服务器将拒绝该服务,并返回相应的错误码。

890-=利用云存储技术的发展优势,以及云存储的比较成熟的访问控制策略来保护多媒体文件不被截获、盗链等违规操作。为保护多媒体文件的传播提供了思路,通过实验系统的试用表明了采用云存储和云访问控制的方式能很好的保护多媒体文件进行传输。