云上传视频织梦上传缩略图失败败是为什么

收藏,536 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
用了这个vsample接口,上传视频文件,生成缩略图。
当上传较小的视频文件的时候,例如5M(30秒)的文件,视频文件能够正常上传,缩略图也正常生成。
但是当上传较大视频文件时候,例如40M(240秒)的文件,视频文件能够正常上传,但是无法生成缩略图。
请问是什么情况?怎么解决。谢谢。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你是否上传的时候在returnbody中设置$(persistentId)的返回值,如果有的话,可以提供一下这个参数,七牛这边看下文件处理的进度。
我这边推测,你并没有在上传策略中指定persistentPipeline和persistentNotifyUrl这两个参数。第一个参数,你可以在
创建一个队列名,然后在上传策略中指定,这样可以大大减少你的处理排队时间;第二个参数,是处理结果结束后,将处理信息的返回的URL的地址,一般是你的服务器地址,返回内容的规格可以参考,可以方便你看到处理成功还是失败。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
上传的时候我并没有returnbody的设置。我用的是php-sdk。
创建一个队列名。 刚才看了一下,不是很明白,当我创建一个队列以后,要求我创建一个作业,这个作业需要选择指定的源文件,但是我要生成缩略图的视频文件都是通过新上传的。就是刚上传完以后就立即生成这个视频文件的多张缩略图。
同步到新浪微博
分享到微博?
与我们一起探索更多的未知
专业的开发者技术社区,为用户提供多样化的线上知识交流,丰富的线下活动及给力的工作机会
加入只需一步
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要举报该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知在win7系统下,如何改变视频的缩略图预览?_百度知道
在win7系统下,如何改变视频的缩略图预览?
在win7系统下,改变视频的缩略图预览方法:方法一:首先桌面——计算机——右击选择“属性”。接着点击高级设置,打开&系统属性&界面,选择高级——设置。在打开的性能选项中,选中“调整”然后点击确定就可。方法二:点击电脑左下角“开始”——“控制面板”。打开控制面板中,选择“外观和个性化”下的“更改主题”。打开后,选择“Aero主题”,当然这里原本就是Aero 主题,然后保存主题。接着刷新下电脑,如还不是“任务栏缩略图预览”,那就重新启动下电脑。
其他类似问题
为您推荐:
提问者采纳
有些格式不能支持,貌似不能做到第二帧或任意帧预览效果、ffdshow,播放功能很强大,你可以下载最新版的专业软件quicktime尝试下,需要下载支持的插件,要打开播放软件拉播放条才行。第二个问题,其中2种插件用得最多ac3filterwin7用的是Windows Media Player的预览功能
来自团队:
其他1条回答
不能更换图片,但是你可以装个暴风影音 并设置为默认打开方式.
win7系统的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁一种云服务平台中间件及云上传方法
一种云服务平台中间件及云上传方法
【专利摘要】本发明提供一种云服务平台中间件及云上传方法,所述中间件包括核心引擎层、数据层、支撑层、消息组件层,其中,所述核心引擎层,用于提供不同云服务的调用接口,供所述中间件外部的云应用层调用;所述数据层与所述核心引擎层通信,用于保存用户云端数据;所述支撑层与所述核心引擎层通信,用于提供实现不同云服务的服务组件;所述消息组件层分别与所述支撑层、所述核心引擎层通信,用于实现所述支撑层与所述核心引擎层间的消息传递。如此就可大大缩短云应用的开发时间,减少开发成本。另外,基于本发明中间件搭建出的云应用,还可通过中间件来整合用户在不同云应用下的数据,实现不同云应用间的数据打通与共享,还可节省存储资源,提高用户体验。
【专利说明】—种云服务平台中间件及云上传方法
【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及一种云服务平台中间件及云上传方法。
【背景技术】
[0002]随着计算机技术的不断发展,云服务以其可靠性和通用性被人们广泛接受和使用,随即,涌现出越来越多满足人们不同需求的云应用,如云相册、云网盘、云视频、云笔记
坐坐寸寸ο
[0003]目前,云服务提供商在构建一个云应用服务平台时,大多是通过分析用户使用场景进行的定制性云应用构建,若要在原有云应用的基础上再增强云服务,要么需要推翻原有云应用的服务平台,重新构建;要么在原有云应用服务平台的基础上,构建一个甚至多个并列云应用服务平台。对于第一种方式,耗时长,花费的代价大;而在第二种方式中,各云应用之间相对独立,无法在各云应用之间实现对同一用户的云端数据共享。下面进行举例说明。
[0004]如在基于个人云视频的服务平台的基础上,再推出个人云相册这一云应用,对应现有技术的两种方式,具体实现可体现为:
[0005]方式一,推翻现有云视频应用平台的架构,重新分析当前的使用场景,构建全新的系统构架,使其同时支撑云视频、云相册两个使用场景。这种方式显然需要花费很大的代价,特别是用户需求更新较为频繁的使用场景,这种代价就显得更为突出。
[0006]方式二,独立考虑云相册应用,即只分析云相册的使用场景,为其定制一套独立的服务平台,再独立建设一套符合云相册应用特点的网络基础设施,以此向用户提供云视频、云相册的综合使用场景。这种方式下,两个云应用的用户数据是相互独立、无法打通的,也就是说,用户在云视频应用中的云端数据(如用户底层数据、业务数据等)无法共享到云相册应用中。这种方式下,两个服务平台可能需要维护大量相同的数据,造成存储资源的浪费;对于用户来说,还可能会降低用户体验。
【发明内容】
[0007]本发明实施例的云服务平台中间件及云上传方法,用以解决现有技术在增强云服务时存在的花费代价大、数据无法打通的问题。
[0008]为此,本发明实施例提供如下技术方案:
[0009]一种云服务平台中间件,所述中间件包括核心引擎层、数据层、支撑层、消息组件层,其中,
[0010]所述核心引擎层,用于提供不同云服务的调用接口,供所述中间件外部的云应用层调用;
[0011]所述数据层与所述核心引擎层通信,用于保存用户云端数据;
[0012]所述支撑层与所述核心引擎层通信,用于提供实现不同云服务的服务组件;
[0013]所述消息组件层分别与所述支撑层、所述核心引擎层通信,用于实现所述支撑层与所述核心弓I擎层间的消息传递。
[0014]优选的,所述支撑层提供的服务组件包括以下服务组件中的至少一种:
[0015]图片缩略图组件、静态资源池、视频转码系统、文件分发与加速系统、分布式文件存储系统。
[0016]优选的,所述中间件还包括数据缓存层,
[0017]所述数据缓存层,用于缓存所述数据层中满足预设规则的用户云端数据。
[0018]优选的,所述核心引擎层,还用于整合同一用户在不同云服务中的云端数据,并保存用户与整合后的云端数据间的对应关系。
[0019]优选的,所述核心引擎层,还用于监控用户对不同云服务的访问情况,并生成云日志保存至所述数据层。
[0020]优选的,所述消息组件层,还用于与所述云应用层通信,实现不同云服务间的消息传递。
[0021]对应地,本发明实施例还提供一种云上传方法,开发者构建能提供云上传服务的应用层,使所述应用层与上述的云服务平台中间件通信,按照以下步骤进行云上传:
[0022]所述应用层向所述中间件的核心引擎层中的云上传服务的调用接口发送文件上传请求,所述请求包括待上传文件的文件指纹;
[0023]所述云上传服务根据所述文件指纹判断该待上传文件是否已完成上传;
[0024]如果未完成上传,则通知所述应用层将所述待上传文件上传至所述中间件的支撑层中的分布式文件存储系统;
[0025]文件完成上传后,所述分布式文件存储系统将文件的存储地址写入所述中间件的消息组件层的消息队列中,并将文件上传成功的信息反馈给所述应用层;
[0026]所述核心引擎层维护的消息读取进程按预设间隔访问所述消息组件层,从中读取所述分布式文件存储系统写入的文件存储地址,并将所述文件存储地址保存至所述中间件的数据层。
[0027]优选的,如果所述待上传文件为图片,所述方法还包括:
[0028]文件完成上传后,所述分布式文件存储系统利用所述图片缩略图组件生成缩略图,并将所述缩略图存入静态资源池。
[0029]优选的,如果所述待上传文件为视频文件,所述方法还包括:
[0030]所述消息读取进程从所述消息组件层读取到所述文件存储地址后,所述核心引擎层控制所述支撑层的视频转码系统从所述分布式文件存储系统中读取所述视频文件并进行视频转码;
[0031]转码完成后,所述视频转码系统将转码后的文件保存至所述支撑层的文件分发与加速系统,并将转码后的文件的存储地址写入所述消息组件层的消息队列中;
[0032]所述消息读取进程按照预设间隔访问所述消息组件层,从中读取所述转码后的文件的存储地址并保存至所述数据层。
[0033]优选的,所述待上传文件请求还包括回调地址,则所述方法还包括:
[0034]在所述将所述文件存储地址保存至所述中间件的数据层之后,
[0035]所述云上传服务通过所述回调地址向所述应用层发送上传成功确认消息。
[0036]本发明实施例的云服务平台中间件及云上传方法,由中间件对多个云服务的底层业务和数据进行统一管理和维护,开发者只需构建简单的应用层,然后调用中间件提供的对外接口即可搭建一个新的云应用,如此就可大大缩短云应用的开发时间,减少开发成本。另外,基于本发明中间件搭建出的云应用,还可通过中间件来整合用户在不同云应用下的数据,实现不同云应用间的数据打通与共享,如此还可节省存储资源,提高用户体验。
【专利附图】
【附图说明】
[0037]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
[0038]图1是本发明实施例的云服务平台中间件的示意图;
[0039]图2是本发明实施例云上传方法实施例1的流程图;
[0040]图3是本发明实施例云上传方法实施例2的流程图。
【具体实施方式】
[0041]为了使本【技术领域】的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
[0042]为了解决现有技术在原有云应用基础上增强云服务时,搭建新的云应用服务平台耗时长、代价大等问题,本发明实施例提供了一种云服务平台中间件,为开发者提供了实现多种云应用的技术支持。如此,在需要孵化一款新的云应用时,开发者只需要构建应用层,然后通过应用层调用本发明实施例的中间件,以应用层与中间件拼接的方式实现一种新的云应用。相对现有技术需要花费3?5个月的时间构建一种新的云应用来说,采用本发明方案之后,仅需I?2个月即可完成,大大缩短了研发时间,降低了时间成本。
[0043]需要说明的是,应用层可以理解为是云应用的用户交互界面,即用户可视并可直接操作的界面,其面向用户不同的云服务需求,可实现移动端、PC端、TV端等客户端的云应用展示。
[0044]下面对本发明实施例的云服务平台中间件的构成进行解释说明。
[0045]实施例1
[0046]参见图1,示出了本发明实施例的云服务平台中间件的示意图,作为本发明实施例中间件构成方案的实施例1,中间件可包括核心引擎层、数据层、支撑层、消息组件层。下面对各层进行解释说明。
[0047](I)核心引擎层,用于提供不同云服务的调用接口,供中间件外部的云应用层调用。
[0048]核心引擎层最基本的功能即是要维护供不同云应用服务的调用接口,参见图1所举示例,核心引擎层可向应用层提供上传、下载、移动、重命名、搜索等服务,并向开发者提供这些服务的调用接口,供其使用。如此,在开发者拟构建一个新的云应用时,只要开发实现业务展示的应用层,并在需要时调用核心引擎层提供的相应的接口即可。
[0049]需要说明的是,核心引擎层作为本发明中间件的对外接口,可直接与应用层通信,并根据实际使用情况建立与数据层、支撑层、或者消息组件层的通信,对此将在下文一一进行解释说明。
[0050](2)数据层与核心引擎层通信,用于保存用户云端数据。
[0051]数据层最基本的功能即是实现云端存储,主要由数据库组件形成。
[0052](3)支撑层与核心引擎层通信,用于提供实现不同云服务的服务组件。
[0053]应用层调用核心引擎层后,由核心引擎层根据应用层为用户提供的不同云服务,与支撑层相互配合实现云服务。参见图1所举示例,支撑层可体现为:图片缩略图组件、静态资源池、视频转码系统、文件分发与加速系统、分布式文件存储系统、监控系统等。
[0054]支撑层所包含的组件可被划分为实现不同云服务的通用组件,如,云网盘服务和云相册服务上传的文件均可保存至分布式文件存储系统中,对于这两个云应用来说,分布式文件存储系统就可被视为通用组件。或者,不同云服务均可通过监控系统,对应用接口、消息队列、服务器、网络、磁盘、数据库主从等健康状况进行实时监控,故监控系统亦可被视为通用组件。
[0055]另外,支撑层的组件还可被划分为实现个性化云服务的个性化组件,如,对于云相册服务来说,除了要通过分布式文件存储系统保存用户上传的相册之外,在检测到用户上传的文件为图片时,还会通过图片缩略图组件进行图片处理生成缩略图,并将其推到静态资源池中,以提高图片访问速度。再例如,对于视频文件来说,其可能由手机、摄像机等不同终端拍摄,也可能具有不同的视频格式,为了保证用户上传成功后,可在任何地方通过任何设备正常播放该视频文件,还应对视频文件进行统一转码。图片缩略图组件、静态资源池、视频转码系统等均可被视为个性化组件。
[0056](4)消息组件层分别与支撑层、核心引擎层通信,用于实现支撑层与核心引擎层间的消息传递。
[0057]消息组件层最基本的功能即是实现支撑层向核心引擎层方向的消息传递。如,应用层调用核心引擎层向用户提供上传服务时,核心引擎层会与支撑层的分布式文件存储系统配合,进行文件上传与存储;上传完成后,分布式文件存储系统还需要将存储地址保存到数据层,以便用户在需要进行文件下载时,核心引擎层可以从数据层读取文件存储地址,进而去相应的位置获取文件。在这一过程中,支撑层即是通过消息组件层将存储地址传递给核心引擎层,进而由核心引擎层将其保存至数据层,对此将在下文的云上传方法中进行解释说明。
[0058]如此,开发者就可以利用本发明实施例提供的中间件快速方便的构建一款新的云应用,且在开发过程中,开发者仅需构建简单的应用层,然后使应用层与中间件的对外接口进行交互即可。对于实现云服务的底层业务及数据均可由中间件统一进行管理及维护,这就可大大减少不必要的重复开发工作,降低数据同步、软硬件开发、维护升级等方面的成本。
[0059]实施例2
[0060]另外,针对现有技术增强云服务方式二,无法打通两个独立服务平台之间数据的缺点,本发明实施例还提供了中间件构成方案的实施例2。在该实施例中,核心引擎层,还用于整合同一用户在不同云服务中的云端数据,并保存用户与整合后的云端数据间的对应关系O
[0061]也就是说,开发者可以构建多个不同云服务的应用层,并利用本发明的中间件拼接出多个不同的云应用,如图1示出的云网盘、云相册、云备份等云应用的应用层。为了保证用户在不用云应用中数据的打通与共享,核心引擎层还应具有整合用户云端数据的功倉泛。
[0062]具体过程可提现为:在用户通过利用本发明中间件搭建成的云应用进行数据上传时,核心引擎层会建立用户身份信息与云应用间的对应关系,因为云应用与用户数据也是相对应的,如此也就建立了用户身份信息与用户数据间的对应关系,这样,在用户需要实现相关云服务的联动时,核心引擎层就可以根据用户输入的条件,查找需要的数据反馈给用户,如此既可节省存储资源,又可提高用户体验。下面对该过程进行举例说明。
[0063]如,通过本发明中间件实现了云网盘和云相册两个云应用,若要实现云网盘的个人照片在云相册中的展现与管理,过程可体现为:首先,核心引擎层会建立用户身份编码与云网盘间的映射关系,进而实现该用户与云网盘所有用户数据的关联(当然包括该用户与上述个人照片间的关联);对应地,核心引擎层还会建立该名用户的身份编码与云相册间的映射关系,实现其与云相册所有用户数据的关联,如此,就建立了该用户及其在两个云应用下数据的关联关系。其次,在用户想要实现云网盘的个人照片到云相册的展现时,将其作为联动条件输入,核心引擎层即会根据这一条件判断该名用户是否与云网盘建立有映射关系,如果有就可从云网盘中查找并读取用户需要的个人照片,并将其共享到云相册,实现云网盘中的个人照片在云相册的展现。
[0064]实施例3
[0065]在实现不同云应用间数据打通与共享之后,为了实现不同云应用底层系统间的数据通信,并降低耦合性,实现系统间松耦合,本发明实施例还提供了中间件构成方案的实施例3。在该实施例中,消息组件层,还用于与所述云应用层通信,实现不同云服务间的消息传递。
[0066]也就是说,本发明中的消息组件层除了可实现同一应用下的消息传递,还能实现不同应用间的消息传递。下面以传递共享信息为例进行解释说明:
[0067]同一应用下的消息传递可体现为:用户A在云相册应用中向用户B共享了一张照片,消息组件层即会向云相册应用中的用户B发送共享信息提醒,提示用户B当前有用户A向其共享了照片。
[0068]不同应用下的消息传递可体现为:用户A在云相册应用中向用户B共享了一张照片,因不同应用间的数据被打通,故消息组件层还可向云网盘应用中的用户B发送共享信息提醒,提示用户B当前有用户A在云相册应用中向其共享了照片。作为本发明实施例的一种优选方案,在用户B点击共享消息提醒中的链接地址时,还可直接从云网盘跳转到云相册中,查看用户A共享的照片。
[0069]需要说明的是,上文实施例1处介绍的存储地址的传递可以理解为是同一应用下消息传递过程的体现。
[0070]实施例4
[0071]为了提高利用本发明中间件搭建出的云应用的访问速度,本发明实施例还提供了中间件构成方案的实施例4。在该实施例中,中间件还包括数据缓存层,用于缓存所述数据层中满足预设规则的用户云端数据。
[0072]—般情况下,在用户访问云应用,希望从中读取或者下载数据时,需要通过应用层调用核心引擎层,再由核心引擎层根据用户需求,从数据层中读取相应的用户数据。为了提高这一过程的处理速度,本发明实施例还增设了读取速度较快的数据缓存层,将部分满足预设规则(预设规则可体现为用户常用的数据、或者用户设置的特定类型的数据等,本发明对此可不做限定)的数据从数据层读取到数据缓存层中保存。在用户需要访问数据时,由核心引擎层先从数据缓存层读取,如果数据缓存层不存在,再访问数据层并从中读取。
[0073]数据缓存层可包含数据缓存组件、会话共享组件等,因其与数据层均是为了实现云端数据存储及查询,故在图1所示示例中,并未对二者进行严格的划界。
[0074]实施例5
[0075]为了记录利用本发明中间件搭建出的云应用的访问情况,本发明实施例还提供了中间件构成方案的实施例5。在该实施例中,核心引擎层,还用于监控用户对不同云服务的访问情况,并生成云日志保存至所述数据层。
[0076]也就是说,核心引擎层还具备监控功能,可统计分析每个云应用具有的用户数量、预设时间段(如每天、每小时等)的访问量、应用的使用活跃度等,对应于此,数据层还包含有日志组件,用于保存核心引擎层监控到的数据。
[0077]下面以云上传过程为例,对利用本发明中间件搭建出的云应用的使用过程进行解释说明。
[0078]实施例6
[0079]如上文所做介绍,从开发者的角度来说,其需要构建一个能提供云上传服务的应用层,然后使该应用层与本发明的云服务平台中间件通信,按照以下步骤进行云上传。具体可参见图2所示实施例1的流程图,可包括:
[0080]步骤101,所述应用层向所述中间件的核心引擎层中的云上传服务的调用接口发送文件上传请求,所述请求包括待上传文件的文件指纹。
[0081]应用层向用户展示操作界面,并在接收到用户通过客户端发送的文件上传请求时,与中间件的核心引擎层建立通信,调用核心引擎层向其提供的文件上传服务接口,将文件上传请求提交给该接口,触发云上传过程。
[0082]需要说明的是,文件上传请求中主要包含的是待上传文件的文件指纹,文件指纹可视为是文件的身份信息,每个文件都对应有各自唯一的文件指纹,文件指纹可通过文件内容、文件大小、文件类型等形成。
[0083]步骤102,所述云上传服务根据所述文件指纹判断该待上传文件是否已完成上传,如果未完成上传,则执行步骤103 ;如果已完成上传,则向用户反馈上传成功。
[0084]核心引擎层中的云上传服务接收到应用层转发的文件上传请求之后,先根据文件指纹判断该待上传文件是否已完成上传:
[0085]如果已完成上传(不论是用户自己先前上传过该文件,还是其它用户上传过该文件,均可视为已完成上传。对于其它用户上传过该文件的情况来说,当前用户相当于共享了其它用户的上传进度及上传文件),则核心引擎层直接通过应用层向用户反馈文件上传成功的消息,实现文件秒传。
[0086]如果未完成上传(可具体体现为文件不存在,或者文件上传中断),云上传服务则会查找距离该用户客户端最近的上传节点,并将该上传节点分配给客户端,用以实现文件上传。[0087]步骤103,通知所述应用层将所述待上传文件上传至所述中间件的支撑层中的分布式文件存储系统。
[0088]本步骤即是查找到距离客户端最近的上传节点之后,通过应用层将该上传节点的地址通知客户端,进而通过上传节点将待上传文件上传至中间件的支撑层,具体是上传到支撑层的分布式文件存储系统中。
[0089]步骤104,文件完成上传后,所述分布式文件存储系统将文件的存储地址写入所述中间件的消息组件层的消息队列中,并将文件上传成功的信息反馈给所述应用层。
[0090]步骤105,所述核心引擎层维护的消息读取进程按预设间隔访问所述消息组件层,从中读取所述分布式文件存储系统写入的文件存储地址,并将所述文件存储地址保存至所述中间件的数据层。
[0091]在文件上传完成之后,还需要将文件的存储地址保存到数据层,以备后续用户在读取或下载文件时使用,对此还需要进行如下两方面处理:
[0092]第一方面,分布式文件存储系统将文件的存储地址(或理解为存储路径)写入到消息组件层的消息队列中,同时还会向客户端用户反馈文件上传成功的消息(主要是通过应用层展现给用户查看)。
[0093]第二方面,核心引擎层维护着一个消息读取进程,该进程为一个定时脚本,可每隔预设时间间隔访问一次消息组件层,读取消息队列中的消息。在分布式文件存储系统将文件存储地址写入消息队列之后,即可被消息读取进程读取并保存到数据层中。至此,就完成了利用本发明中间件搭建出的云应用进行云上传的过程。
[0094]实施例7
[0095]参见图3,示出了本发明云上传方法实施例2的流程图,可包括:
[0096]步骤201,所述应用层向所述中间件的核心引擎层中的云上传服务的调用接口发送文件上传请求,所述请求包括回调地址和待上传文件的文件指纹。
[0097]步骤202,所述云上传服务根据所述文件指纹判断该待上传文件是否已完成上传,如果未完成上传,则执行步骤203 ;如果已完成上传,则向用户反馈上传成功。
[0098]步骤203,通知所述应用层将所述待上传文件上传至所述中间件的支撑层中的分布式文件存储系统。
[0099]步骤204,文件完成上传后,所述分布式文件存储系统将文件的存储地址写入所述中间件的消息组件层的消息队列中,并将文件上传成功的信息反馈给所述应用层。
[0100]步骤205,所述核心引擎层维护的消息读取进程按预设间隔访问所述消息组件层,从中读取所述分布式文件存储系统写入的文件存储地址,并将所述文件存储地址保存至所述中间件的数据层。
[0101]步骤201?205与步骤101?105基本相同,此处不再赘述。所不同的是,本实施例中文件上传请求中还包括回调地址,也就是说,客户端用户希望在平台确认文件上传成功之后,通过回调地址向其反馈上传成功确认消息。
[0102]步骤206,所述云上传服务向所述应用层发送上传成功确认消息。
[0103]当客户端对文件上传结果要求较为严格时,可在文件上传请求中添加入回调地址,要求平台向其反馈文件的最终上传状态。
[0104]在云上传方法实施例1中,文件完成上传后,分布式文件存储系统会向客户端反馈文件上传成功的消息,但是,由上文介绍可知,在分布式文件存储系统向应用层反馈该消息之后,还要经过消息读取进程读取存储地址、以及将存储地址保存到数据层等处理过程,不论这些过程中的哪个出现错误,都可能会导致用户后续无法正确读取或下载到该上传文件。因此,本实施例还针对上传结果要求较高的情况(如云备份),利用回调的方式,在确保文件存储地址被正确保存到数据层之后,由核心引擎层向应用层发送文件上传成功确认消息,以此使客户端用户掌握文件的最终上传状态。
[0105]需要说明的是,进行云上传的文件可能是普通文档,也可能是图片类文件,或者视频类文件,对于图片类和视频类的文件来说,在上传过程中还需要利用支撑层的个性化组件进行特殊处理,下面分别进行解释说明。
[0106]在文件完成上传后,如果分布式文件存储系统判定该文件为图片类文件,即会触发图片缩略图组件生成缩略图,并将所述缩略图存入静态资源池。这一过程,可在分布式文件存储系统将文件存储地址写入消息队列之前执行,也可在将文件存储地址写入消息队列之后执行,或者同时执行这两个动作,对此本发明可不做限定。
[0107]如果待上传文件为视频文件,则在消息读取进程从消息组件层的消息队列中读取到该文件的存储地址之后,核心引擎层会将文件存储地址发送给视频转码系统,控制视频转码系统从分布式文件存储系统中读取该视频类文件,并进行视频转码。为了提高转码后的视频文件的读取速度,视频转码系统在完成转码后,还会将转码后的文件保存至文件分发与加速系统,并将其在文件分发和加速系统中的存储地址写入消息组件层的消息队列中,等待消息读取进程读取并将其保存到数据层。也就是说,对于一个视频文件来说,数据层保存有其两个存储地址,一个是存储在分布式文件存储系统中的原始上传文件的存储地址,供用户查看和下载;一个是存储在文件分发与加速系统中的转码后的文件的存储地址,供用户在不同设备上播放。
[0108]以上对本发明实施例进行了详细介绍,本文中应用了【具体实施方式】对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及平台;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种云服务平台中间件,其特征在于,所述中间件包括核心引擎层、数据层、支撑层、消息组件层,其中,
所述核心引擎层,用于提供不同云服务的调用接口,供所述中间件外部的云应用层调用;
所述数据层与所述核心引擎层通信,用于保存用户云端数据;
所述支撑层与所述核心引擎层通信,用于提供实现不同云服务的服务组件;
所述消息组件层分别与所述支撑层、所述核心引擎层通信,用于实现所述支撑层与所述核心引擎层间的消息传递。
2.根据权利要求1所述的方法,其特征在于,所述支撑层提供的服务组件包括以下服务组件中的至少一种:
图片缩略图组件、静态资源池、视频转码系统、文件分发与加速系统、分布式文件存储系统。
3.根据权利要求1所述的方法,其特征在于,所述中间件还包括数据缓存层,
所述数据缓存层,用于缓存所述数据层中满足预设规则的用户云端数据。
4.根据权利要求1~3任一项所述的方法,其特征在于,
所述核心引擎层,还用于整合同一用户在不同云服务中的云端数据,并保存用户与整合后的云端数据间的对应关系。
5.根据权利要求1~3任一项所述的方法,其特征在于,
所述核心引擎层,还用于监控用户对不同云服务的访问情况,并生成云日志保存至所述数据层。
6.根据权利要求1~3任一项所述的方法,其特征在于,
所述消息组件层,还用于与所述云应用层通信,实现不同云服务间的消息传递。
7.—种云上传方法,其特征在于,开发者构建能提供云上传服务的应用层,使所述应用层与权利要求1~6任一项所述的云服务平台中间件通信,按照以下步骤进行云上传:
所述应用层向所述中间件的核心引擎层中的云上传服务的调用接口发送文件上传请求,所述请求包括待上传文件的文件指纹;
所述云上传服务根据所述文件指纹判断该待上传文件是否已完成上传;
如果未完成上传,则通知所述应用层将所述待上传文件上传至所述中间件的支撑层中的分布式文件存储系统;
文件完成上传后,所述分布式文件存储系统将文件的存储地址写入所述中间件的消息组件层的消息队列中,并将文件上传成功的信息反馈给所述应用层;
所述核心引擎层维护的消息读取进程按预设间隔访问所述消息组件层,从中读取所述分布式文件存储系统写入的文件存储地址,并将所述文件存储地址保存至所述中间件的数据层。
8.根据权利要求7所述的方法,其特征在于,如果所述待上传文件为图片,所述方法还包括:
文件完成上传后,所述分布式文件存储系统利用所述图片缩略图组件生成缩略图,并将所述缩略图存入静态资源池。
9.根据权利要求7所述的方法,其特征在于,如果所述待上传文件为视频文件,所述方法还包括:
所述消息读取进程从所述消息组件层读取到所述文件存储地址后,所述核心引擎层控制所述支撑层的视频转码系统从所述分布式文件存储系统中读取所述视频文件并进行视频转码;
转码完成后,所述视频转码系统将转码后的文件保存至所述支撑层的文件分发与加速系统,并将转码后的文件的存储地址写入所述消息组件层的消息队列中;
所述消息读取进程按照预设间隔访问所述消息组件层,从中读取所述转码后的文件的存储地址并保存至所述数据层。
10.根据权利要求7所述的方法,其特征在于,所述待上传文件请求还包括回调地址,则所述方法还包括:
在所述将所述文件存储地址保存至所述中间件的数据层之后,
所述云上传服务通过所述回调地址向所述应用层发送上传成功确认消息。
【文档编号】H04L29/08GKSQ
【公开日】日
申请日期:日
优先权日:日
【发明者】张清柱
申请人:乐视网信息技术(北京)股份有限公司

我要回帖

更多关于 上传视频生成缩略图 的文章

 

随机推荐