背景技术
目前互联网文件传输有各种方式,例如:《一种基于光场渲染的自由视点视频在IP网传输方法》,公开号101022537,该发明涉及一种基于光场渲染的自由视点视频在IP网传输方法,将每台电脑从摄像头采集来的视频进行压缩后的视频流作为一路视频流进行缓存;将用户所需要的多路视频流作为一路自由视点视频流进行传输,该传输方法包括:视频流缓存;建立连接准备服务,将用户及所需视频流标号放入相应的用户待服务列表,每个用户待服务列表中用户按照用户时间戳从早到晚排序;选取所有用户时间戳最早的用户按其视频流标号进行发送;当进行视频流切换时,服务器将用户待服务列表中用户的视频流标号修改为用户需要更换的视频流标号,然后发送。该发明创造已经不足以满足文件的高速传输。
互联网网络存在一种存储秒传技术。百度云盘等网络存储在进行文件传输的过程中都实现了秒传的机制,其原理大致如下:
1、根据Hash算法计算每个文件的Hash值,不同的文件计算出来的Hash值不同;2、客户端系统在上传文件之前,先计算本地文件的Hash值,并将该Hash值传输给网络存储服务器;3、网络存储服务器维护一张数据库表,用于记录所存储的文件及其对应的Hash值;4、网络存储服务器收到客户端传输过来的Hash值,在其数据库中搜索该Hash值是否存在,如果存在,则通知客户端无需上传,否则客户端则进行文件上传;5、当客户端需要上传多个文件时,每个文件均是在正式上传之前将其Hash值上传到网络存储服务器进行判断是否能够秒传,多个文件形成队列。
由于计算一个文件Hash值所花费的时间小于通过网络传输一个文件的时间,文件越大,时间差距越明显。由于渲染文件一般由大量图形组成,文件现实的特性是体积非常大,另外,由于渲染文件中有一部分图形是相同的,该上传的文件可能已经被其他用户上传到存储服务器上,该上传会造成整个渲染文件上传时间长,且占用存储服务器的空间,浪费时间和存储服务器资源。
渲染任务文件特性:
一个渲染任务包含的文件类型主要有:渲染工程文件,如.max、.ma、.mb文件,通常1个或若干个;在进行渲染过程中所需的素材文件,如贴图文件.jpg、.png、.bmp等,灯光焦散文件.vrmap、.vrlmap、vrpmap等,模型文件,如人物模型、家具模型等,模型文件通常是由第三方制作厂商提供的,其扩展名同样为.max、.ma和.mb,供渲染相关制作人员直接在渲染工程文件中引用,以达到模块化快速制作的目的,通常素材文件较多,成百甚至复杂场景需要数万个;
渲染引擎根据渲染相关制作人员制作的渲染工程文件,对所需的素材文件进行加载引用,并进行计算渲染,最终输出渲染结果。因此,素材文件可以重复的在多个渲染任务中被引用,而由于渲染工程文件是渲染相关制作人员利用3ds Max、Maya等建模工具根据需求创建的,因此渲染工程模型往往不具有重复可用性;
根据制作场景的复杂程度,渲染工程文件大小通常为几十MB至几GB大小,而素材文件中的贴图类文件通常则为几KB至几MB不等,而模型文件则与渲染工程文件类似会相对较大;
云渲染服务,用户通过互联网将渲染任务上传至云服务器,然后由云渲染服务后台计算节点进行渲染并输出渲染结果文件,再云服务器再通过互联网将渲染结果文件发送给用户;
以用户互联网带宽接入速度为10Mb为例,理想情况下,传输500MB的渲染工程文件所需时间为:500MB/(10Mb/8)=400秒;而传输1MB的素材文件所需时间为:1MB/(10Mb/8)=0.8秒。
发明内容
针对现有技术中存在的问题,本发明根据渲染任务文件的特性,以及互联网网络存储秒传原理,实现互联网云渲染文件高速传输。
本发明实现的技术方案为:一种基于渲染特性的云渲染文件高速传输方法,系统包括客户端系统与网络存储服务器端,其特征在于,它包括以下步骤:
S1:在所述客户端系统中生成文件队列排查列表和文件上传列表,在所述网络存储服务器端生成存储文件的Hash值列表;
S2:按照文件修改时间排列,优先上传修改时间最近的文件;上传文件时,所述客户端系统开始计算后续文件的Hash值,将Hash值计算后上传至所述网络存储服务器进行对比并发回对比结果;所述客户端系统根据发回的对比结果判断该文件是否需要上传,删除所述文件队列排查列表中无需上传的文件,并将需要上传的文件发送到文件上传列表;
S3:在第一个或上一个文件上传结束时,所述客户端系统将所述文件上传列表中文件的Hash值再次上传至所述网络存储服务器端进行对比并将对比结果发回,删除无需上传的文件信息并按文件大小排序;
S4:所述客户端系统开始将所述文件上传列表剩余文件中最大的文件上传至所述网络存储服务器,并同时再次上传排序中下一个文件的Hash值;将Hash值计算后上传至所述网络存储服务器进行对比并发回对比结果;所述客户端系统根据发回的对比结果,删除不需要上传的文件,减少文件上传数量,进而提高传输效率;
S5:重复步骤三和步骤四,直至文件上传列表中所有文件全部上传完毕。
本发明具有以下有益效果:本发明不同于目前主流的网络文件秒传方式:本发明通过文件被修改时间和文件大小排序,找到需要上传的文件,并且在前一个文件上传同步进行下一个文件Hash值计算,排除与网络存储服务器端相同的文件,经过排查流程和上传再排查两次剔除不需要上传的文件,没有增大计算量,同时又能最大限度的减少文件上传数量,减少文件上传总耗时。
如上所述的程序伴随着先前上传的文件同时进行,在上传文件的同时,系统开始计算Hash特征值,经过两次向服务器端发送Hash值对比,删除客户端与服务器端相同的待上传文件,从而最大限度的减少上传文件,减少上传时间。
由于计算Hash值与网络存储服务器对比所占用的时间远小于文件上传所需时间,该系统极大提高了文件上传效率,对于渲染行业的频繁上传、下载大文件的行业特性来说,节省了大量网络服务器的存储空间,同时也减少了客户在上传时的时间。
具体实施方式
下面结合说明书的附图和具体实施例对本发明作进一步的描述。
为了达到本发明的目的,本实施例提供了一种基于渲染特性的云渲染文件高速传输方法,如图2所示,其中该方法包括下列步骤:
1、本发明公开的技术系统包括两个系统,客户端系统与网络存储服务器,如图1所示,本实施例的网络文件Hash值判断原理系统图。
2、用户开始通过渲染客户端上传渲染文件后,系统执行文件队列排查流程:
2.1将本地存储路径中待上传文件形成待上传文件初始化列表2-01,该列表根据排列顺序根据文件的最后修改时间为基准由新至旧排序2-02;
2.2客户端系统判断文件排查队列列表是否为空2-03,如为空,则系统通知文件上传进程秒传排查流程结束;
2.3文件排查队列列表不为空,系统按序取出下一条记录2-04;
2.4客户端系统将文件Hash值与文件本地存储路径上传至网络存储服务器2-05;网络文件Hash值判断原理如图1所示。
2.5客户端系统获取网络存储服务器反馈的结果2-06;
2.6系统根据获取网络存储服务器返回结果2-06判断是否需要上传文件2-07;
2.7如不需要上传文件,则删除文件排查队列列表中该记录2-08,系统执行文件队列表是否为空2-03中的流程;
2.8如是否需要上传文件2-07中判断需上传文件,则系统将该文件信息置入文件上传列表2-09中;文件上传列表如图3所示;
3、系统删除文件队列列表中该记录2-10;
4、将文件队列列表按文件大小进行排序2-11;
5、对排序后的得列表进行判断列表是否为空2-12;
6、若文件排查队列列表为空则执行通知文件上传进程秒传排查已经结束2-19的流程;
7、若文件排查队列列表不为空则按序取出下一条记录2-13;
8、系统将文件Hash值与该文件本地存储路径上传至网络存储服务器2-14;
9、客户端系统获取网络存储服务器反馈结果2-15;
10、根据2-15的反馈结果判断是否需要上传文件2-16;
11、如需上传文件则系统将文件信息置入文件上传列表2-17中;
12、删除文件队列排查列表中该记录2-18;系统再次转入执行判断列表是否为空2-12流程。
本发明在上述步骤实现后,开始执行以下流程:如图3所示:
1、客户端系统生成文件上传队列列表;经过文件上传排查程序后,待上传文件队列初始化后,先判定排查文件秒传算法是否结束3-01,若结束则:
2、系统判定文件上传列表是否为空3-02,若不为空则;
3、按序取出下一条记录3-03;
4、将文件Hash值与文件本地存储路径上传至网络存储服务器3-04;
5、获取网络存储服务器返回结果3-05;
6、系统根据返回的结果判定是否需要上传文件3-06;
7、如判定结果为是,则上传该文件3-07,并删除上传文件队列中该文件3-08;
8、根据排查文件秒传算法是否结束3-01判定,若未结束则:判断文件上传列表是否为空,若为空则该程序结束3-09;
9、若不为空,则按序取出下一条记录3-10;
10、将文件Hash值与文件本地存储路径上传至网络存储服务器3-11;
11、获取网络存储服务器返回结果3-12;
12、系统判定是否需要上传文件,若否,则删除文件上传队列中该文件3-15;
13、若是,则上传该文件,并删除文件上传队列中该记录;
14、重复上述步骤,直至流程结束。
以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。本发明未涉及的技术均可通过现有的技术加以实现。