CN118034895A - 一种文件预览方法和相关装置 - Google Patents

一种文件预览方法和相关装置 Download PDF

Info

Publication number
CN118034895A
CN118034895A CN202211372498.5A CN202211372498A CN118034895A CN 118034895 A CN118034895 A CN 118034895A CN 202211372498 A CN202211372498 A CN 202211372498A CN 118034895 A CN118034895 A CN 118034895A
Authority
CN
China
Prior art keywords
file
target
target file
resource
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211372498.5A
Other languages
English (en)
Inventor
练振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN202211372498.5A priority Critical patent/CN118034895A/zh
Publication of CN118034895A publication Critical patent/CN118034895A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种文件预览方法,在提供预览服务时,获取针对目标文件的目标预览任务,根据目标文件的目标文件类型获取对应的目标文件引擎资源,并在内存中加载,通过加载完成的目标文件引擎资源可对所述目标预览任务对应的所述目标文件进行预览显示。由于目标文件引擎资源为用于预览不同文件类型的多个文件引擎资源中的一个,而无需在内存加载全部的多个文件引擎资源,从而实现了按需加载的文件预览服务。按需加载的方式可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。其中,文件引擎资源可以存储在资源服务器中,在有预览需求时进行针对性的读取。

Description

一种文件预览方法和相关装置
技术领域
本申请涉及数据处理领域,特别是涉及一种文件预览方法和相关装置。
背景技术
随着计算机技术的发展,终端设备可以提供文件预览的服务。在需要进行文件预览时,终端设备可以通过初始化文件预览引擎来支持多种文件格式(例如txt、pdf、xls、doc等)的文件预览服务。
文件预览引擎在提供对待预览文件的预览服务时,需要读取与该待预览文件对应的文件引擎资源,故相关技术中,终端设备会在文件预览引擎初始化时将对应不同文件格式的文件引擎资源集合加载到内存中备用,这种方式会延长文件预览引擎的初始化时间,降低了文件预览效率。
发明内容
为了解决上述技术问题,本申请提供了一种文件预览方法和相关装置,不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供了一种文件预览方法,所述方法包括:
通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
在内存中加载所述目标文件引擎资源;
通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
另一方面,本申请实施例提供了一种文件预览装置,所述装置包括获取单元、加载单元和预览单元:
所述获取单元,用于通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
所述获取单元还用于根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
所述加载单元,用于在内存中加载所述目标文件引擎资源;
所述预览单元,用于通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行以上方面所述的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行以上方面所述的方法。
另一方面,本申请实施例提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行以上方面所述的方法。
由上述技术方案可以看出,在提供预览服务时,通过文件预览接口获取针对目标文件的目标预览任务,根据目标文件的目标文件类型获取对应的目标文件引擎资源,并在内存中加载,通过加载完成的目标文件引擎资源可对所述目标预览任务对应的所述目标文件进行预览显示。由于目标文件引擎资源为用于预览不同文件类型的多个文件引擎资源中的一个,即当确定预览需求为目标文件类型时,仅需要加载针对目标文件类型的引擎资源到内存中便可提供满足该预览需求的服务,而无需在内存加载全部的多个文件引擎资源,从而实现了按需加载的文件预览服务。按需加载的方式可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种文件预览方法的流程图;
图2为本申请实施例提供的一种文件预览场景的示意图;
图3为本申请实施例提供的一种文件预览方法的方法流程图;
图4为本申请实施例提供的一种文件引擎资源的资源类型示意图;
图5为本申请实施例提供的一种文件预览***的功能模块图;
图6为本申请实施例提供的一种文件引擎资源的加载示意图;
图7为本申请实施例提供的一种文件预览方法的整体流程图;
图8为本申请实施例提供的一种文件预览装置的装置结构图;
图9为本申请实施例提供的一种终端设备的结构图;
图10为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
终端设备可以通过文件预览引擎来支持多种文件格式(例如txt、pdf、xls、doc等)的文件预览服务。文件预览引擎在提供对待预览文件的预览服务时,需要读取与该待预览文件对应的文件引擎资源。
相关的文件引擎技术方案中,文件预览引擎是被作为一个整体的软件开发工具包(Software Development Kit,SDK)对外提供服务,当需要提供文件预览服务时,文件预览引擎初始化时,文件引擎相关的资源文件会被作为一个整体加载到内存中。相关技术中,文件预览引擎的整体使用流程如图1所示:
1.全量的文件引擎资源和引擎核心应用程序编程接口(Application ProgramInterface,API)被进行了SDK集成,得到对应的应用。
2.集成得到的应用被安装到客户端,在应用的安装过程中,操作***将文件引擎资源拷贝到对应的安装路径。
3.当确定用户具有文件预览需求时,初始化文件预览引擎,其中,应用启动过程中调用文件引擎SDK的初始化方法,操作***自动将应用安装路径下面的所有文件引擎资源装载到内存中,即对全量文件引擎资源加载。
4.当文件预览的接口被调用时,基于文件预览对应的文件类型,直接从内存中加载的全量文件引擎资源中获取与该文件类型对应的文件引擎资源,以执行文件预览。
由此可见,相关技术的文件预览方案中,至少具有如下问题:
1.文件预览引擎对应的SDK体积过大。具体表现为,针对所有的cpu平台都提供一个包括全量文件引擎资源的SDK,这个SDK的大小大约为15M。
2.运行时内存占用大。全量的文件引擎资源在文件预览引擎初始化的时候***作***加载到内存中(不论是否与本次文件预览相关),会有较大的内存占用。
为此,本申请实施例提供了一种文件预览方法,采用按需加载的方式来提供文件预览服务,可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
本申请实施例所提供的文件预览方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例还可以涉及云技术,具体包括云存储。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
例如本申请中的文件引擎资源可以存储在云端的资源服务器,在终端设备需要进行文件预览时,从资源服务器读取所需的文件引擎资源。
图2为本申请实施例提供的一种文件预览场景示意图,本实施例中以终端设备100作为前述计算机设备为例进行说明。
当终端设备100初始化文件预览引擎后,可以通过文件预览接口获取针对目标文件的目标预览任务,确定需要为用户提供针对目标预览任务的预览服务。该目标预览任务中携带有目标文件对应的目标文件类型,例如为word文件类型。
终端设备100基于word文件类型,获取与其对应的目标文件引擎资源,该目标文件引擎资源可以用于提供word文件类型的文件预览。终端设备100通过将目标文件引擎资源加载到内存中,通过加载完成的目标文件引擎资源可对所述目标预览任务对应的所述目标文件进行预览显示。
该文件预览引擎具有为不同文件类型的文件进行预览的功能,前述目标文件类型为这不同文件类型中的一个,例如在图1的场景中,文件预览引擎具有为三种文件类型(PDF、word和txt)的文件进行预览的功能。
相应的,文件预览引擎还配置有该不同文件类型分别对应的文件引擎资源,该目标文件引擎资源为用于预览不同文件类型的多个文件引擎资源中的一个,例如在图1的场景中,文件预览引擎配置有该三种文件类型一一对应的三个文件引擎资源,分别为PDF类型资源、word类型资源和txt类型资源,均被配置在资源服务器200中。
即当确定预览需求为目标文件类型时,终端设备100仅需要从资源服务器200获取针对目标文件类型的引擎资源(例如word类型资源)并加载到内存中便可提供满足该预览需求的服务,而无需在内存加载全部的多个文件引擎资源,例如图1中终端设备100无需将三个文件引擎资源全部加载到内存中,而仅需将word文件类型对应的文件引擎资源加载到内存中即可提供符合用户预留需求的预览服务。
从而,实现了按需加载的文件预览服务,按需加载的方式可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
图3位本申请实施例提供的一种文件预览方法的方法流程图,本实施例中以终端设备作为前述计算机设备为例进行说明,所述方法包括:
S301:通过文件预览接口获取针对目标文件的目标预览任务。
在本申请实施例中通过文件预览引擎为用户提供文件预览服务。文件预览接口可以是由文件预览引擎的引擎核心API提供的,该文件预览接口(openfile接口)可在用户尝试打开目标文件的时候被调用,通过该文件预览接口被调用,终端设备可以基于对应本次预览需求的接口参数获取对应的目标预览任务,该目标预览任务包括目标文件的目标文件类型。通过目标预览任务,终端设备可以明确用户具有预览目标文件的预览需求。
目标文件类型可以是文件预览引擎所能提供预览服务的文件类型中的一个,用于标识目标文件的文件格式、来源等。
在一种可能的实现方式中,文件预览引擎可以在本申请中被解耦为两个部分,分别为引擎核心API和文件引擎资源。通过解耦、拆分文件预览引擎,可以在封装SDK时仅封装引擎核心API,而文件引擎资源可以部署在服务器端,当确定用户预览需求后,在基于需求对应的文件类型针对性的读取文件引擎资源进行加载。
其中文件预览引擎的引擎核心API可以理解为完成预览业务流程的入口或者接口代理层。当调用引擎核心API提供的openfile接口时,不会直接调用文件预览引擎中的业务逻辑,而是会调用openfileIMPL,在接口实现(implement,IMPL)中完成文件引擎资源的安装和加载流程及版本确认流程后,才会调用到文件预览引擎内的openfile(打开文件)的业务逻辑。即引擎核心API主要包括接口定义,而接口实现下沉到文件引擎资源中。由于文件引擎资源是按需动态加载的,所以不需要在文件预览引擎初始化的时候加载,实现了引擎核心API和文件引擎资源间的解耦。
由于引擎核心API相对于文件预览引擎来说数据量很小,一般有300kb左右,故单独封装引擎核心API的SDK也相对于相关技术中全部文件预览引擎封装的SDK的数据体积要小很多,非常便于传输、安装。而解耦出的文件引擎资源可以保存在云端,例如资源服务器中,在终端设备安装完文件预览引擎后再下载到终端设备,或者在获取用户预览需求后在按需下载到终端设备。
S302:根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源。
如前所述,文件预览引擎可以为多个文件类型的文件提供预览服务,针对不同的文件类型的文件预览功能,配置有对应的文件引擎资源。
文件引擎资源为文件预览引擎用于实现文件预览的资源,可以包含文件预览能力实现的各种原生库文件和Java库文件等,不同的文件类型对应不同的文件引擎资源。例如当文件预览引擎具备为三种文件类型的文件提供文件预览功能时,该文件预览引擎具有三种文件引擎资源,与该三种文件类型一一对应。
为了能够实现对文件引擎资源的按需加载,避免相关技术中对全部文件引擎资源进行全量加载的情况出现,需要根据目标文件类型所指示的用户预览需求,先从多个文件引擎资源中确定出符合用户预览需求的目标文件引擎资源,从而可以仅在内存加载该目标文件引擎资源的情况下,实现对目标文件的预览,满足用户的文件预览需求。
本申请不限定终端设备从哪里获取目标文件引擎资源,例如终端设备可以在本地或者从资源服务器获取目标文件引擎资源,将会在之后的实施方式中对此进行详细说明。
S303:在内存中加载所述目标文件引擎资源。
终端设备在获取到对应目标文件类型的目标文件引擎资源后,可以将该目标文件引擎资源在本地内存中进行加载。由于目标文件引擎资源是文件预览引擎由于预览目标文件类型的文件所需的资源,故终端设备无需在内存中加载文件预览引擎的其他文件引擎资源即可实现对目标文件的预览,减少了在内存中的文件引擎资源的加载量,实现了针对用户预览需求的按需加载,提升了内存占用效率。
S304:通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
在终端设备将目标文件引擎资源成功加载到内存中后,文件预览引擎可以通过加载完成的目标文件引擎资源对目标文件进行预览,使得用户可以看到预览显示的目标文件。
而且,由于只需要加载多个文件引擎资源中的目标文件引擎资源在内存中,可以大大提升文件预览引擎的
由此可见,终端设备在提供预览服务时,通过文件预览接口获取针对目标文件的目标预览任务,根据目标文件的目标文件类型获取对应的目标文件引擎资源,并在内存中加载,通过加载完成的目标文件引擎资源可对所述目标预览任务对应的所述目标文件进行预览显示。由于目标文件引擎资源为用于预览不同文件类型的多个文件引擎资源中的一个,即当确定预览需求为目标文件类型时,仅需要加载针对目标文件类型的引擎资源到内存中便可提供满足该预览需求的服务,而无需在内存加载全部的多个文件引擎资源,从而实现了按需加载的文件预览服务。按需加载的方式可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
接下来将详细说明如何基于用户预览需求获取目标文件引擎资源。
在一种可能的实现方式中,终端设备可以从本地获取该目标文件引擎资源,S302包括S3021:
响应于本地保存有所述目标文件类型对应的待定文件引擎资源,将所述待定文件引擎资源确定为所述目标文件引擎资源。
在一些实现场景中,终端设备本地可能保存有目标文件类型对应的待定文件引擎资源,例如文件预览引擎对应的文件引擎资源均保存在终端设备本地,或者,终端设备中资源服务器中获取了目标文件类型对应的待定文件引擎资源尚未删除。
当终端设备本地的文件引擎资源均是从资源服务器获取时,终端设备可以在本地具有对应用户预览需求的待定文件引擎资源时首先尝试加载本地的文件引擎资源,如何可以实现正确加载,可以免去从服务器请求获取的数据交互,提升了预览响应速度。
在一些情况下,文件引擎资源在使用过程中会出现功能更替、优化更新等处理。如果终端设备加载的不是最新版本的目标文件引擎资源,有可能会导致无法正确显示目标文件,甚至不能预览目标文件。
为此,在一种可能的实现方式中,S3021包括:
S30211:响应于本地保存有所述目标文件类型对应的待定文件引擎资源,确定所述待定文件引擎资源的目标版本信息;
S30212:响应于所述目标版本信息为所述目标文件类型对应的文件引擎资源的最新版本信息,将所述待定文件引擎资源确定为所述目标文件引擎资源。
也就是说,如果终端设备确定本地保存有目标文件类型对应的待定文件引擎资源,需要识别该待定文件引擎资源的目标版本信息与目标文件类型所对应文件引擎资源的最新版本信息之间的差异。如果没有差异,则该待定文件引擎资源在保存至终端设备的期间,目标文件类型对应的文件引擎资源没有进行版本更新,本地保存的就是最新版本的文件引擎资源,终端设备可以确定其为目标文件引擎资源,可以向内存中进行加载,从而提升了基于该目标文件引擎资源对目标文件进行预览显示的准确性,避免了错误显示或无法预览的可能。
也有可能出现该待定文件引擎资源在保存至终端设备的期间,目标文件类型对应的文件引擎资源进行了版本更新。
故在一种可能的实现方式中,所述方法还包括:
S11:响应于所述目标版本信息不是所述目标文件类型对应的最新版本信息,向资源服务器发送针对所述目标文件类型的资源获取请求;
S12:从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
也就是说,当终端设备确定本地保存的待定文件引擎资源并非最新版本,这种情况下,即使将该待定文件引擎资源加载到内存中,也有可能错误的显示目标文件中的部分内容,甚至无法完成对目标文件的预览。故终端设备会从资源服务器请求获取最新版本的目标文件引擎资源在内存中加载,提高预览精度。
例如目标版本信息是1.0版本,最新版本信息是2.0版本,终端设备不会直接在内存中加载1.0版本的待定文件引擎资源,而是会从资源服务器获取2.0版本的目标文件引擎资源进行加载,并以此作为后续预览服务的运行基础。
需要说明的是,本申请实施例中提及的资源服务器可以是云服务器,用于保存文件预览引擎的全部文件引擎资源,文件引擎资源在更新时,都会首先同步到资源服务器,使得资源服务器所维护的文件引擎资源均为最新版本。相应的,资源服务器还可以记录所维护文件引擎资源的版本信息。
在本申请中并不限定终端设备如何通过校验目标文件类型所对应文件引擎资源的最新版本信息,例如可以通过更新文件预览引擎获得最新版本信息,并在有需求时在本地进行版本信息校验,或者通过周期性向保存文件预览引擎的文件引擎资源的资源服务器获得最新版本信息,并在有需求时在本地进行版本信息校验,又或者可以在有用户预览需求时向资源服务器请求进行校验,自身并不进行校验工作。
在一种可能的实现方式中,所述方法还包括:
S21:向资源服务器发送版本校验请求,所述版本校验请求包括所述目标文件类型和所述目标版本信息;
S22:从所述资源服务器获取基于所述目标文件类型和所述目标版本信息确定的版本校验结果,所述版本校验结果包括所述目标版本信息是否为最新版本信息的校验信息。
也就是说,在本实施例中,这个终端设备是在确定用户具有预览需求的场景下,才会向资源服务器请求校验该目标版本信息与该目标文件类型所对应文件引擎资源的最新版本信息。由于资源服务器本身会维护最新版本的文件引擎资源,故返回的版本校验结果可以准确的指示终端设备,其本地保存的待定文件引擎资源是否属于最新版本,从而终端设备可以响应于该版本校验结果来确定是否加载本地保存的待定引擎资源到内存中。
这种方式可以高效率的使用终端设备和资源服务器之间的传输资源,对资源服务器的响应资源的占用也能最小化,大大提升了交互效率。
需要注意的是,本申请并不限定只能在最新版本下终端设备才会进行加载,在一些情况下,如果终端设备确定目标版本信息已经能够支持正确预览目标文件,也可以将目标版本信息的待定文件引擎资源加载到内存中在实现预览显示目标文件。例如在目标文件的版本信息与文件引擎资源的版本信息一致的情况下,当确定目标文件的文件版本与目标版本信息相符,或者还低于目标版本信息时,终端设备可以将该待定文件引擎资源作为目标文件引擎资源在内存中加载,依然可以提供正常的预览服务。或者,当终端设备根据目标版本信息确定待定文件引擎资源可以实现正确预览目标文件时,也可以将该待定文件引擎资源作为目标文件引擎资源在内存中加载。
接下来说明终端设备本地未保存目标文件类型对应的目标文件引擎资源时,终端设备如何获取目标文件引擎资源。
在一种可能的实现方式中,S302根据所述目标文件类型获取所述目标文件类型对应的目标文件引擎资源,包括:
S3022:响应于本地未保存有所述目标文件类型对应的待定文件引擎资源,向资源服务器发送针对所述目标文件类型的资源获取请求;
S3023:从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
首先说明,S3022仅是为了便于说明而标记的步骤编号,并不起到S3022与S3021之间有任何的先后执行限定。
由于终端设备本地没有能够实现预览目标文件的文件引擎资源,故终端设备可以基于目标文件类型从前述资源服务器请求获取。资源服务器会实时同步最新版本的文件引擎资源,故终端设备可以直接从资源服务器获取到最新版本信息的目标文件引擎资源,无需再次校验版本信息,可以用于在内存中加载来对目标文件预览显示,提高了预览效率。
在前述实施例中,说明了两种终端设备从资源服务器获取目标文件引擎资源的方式,即在本地保存的待定文件引擎资源版本非最新时,以及本地未保存目标文件类型对应的文件引擎资源时,均需要从资源服务器获取目标文件类型对应的目标文件引擎资源。
终端设备在将目标文件引擎资源加载到内存中之前,还可以进一步的确定所获取的目标文件引擎资源的合法性,避免出现将非法文件引擎资源进行加载的风险。该非法文件引擎资源例如可以包括植入木马等病毒的资源、遭到篡改的资源、或者伪装成资源的病毒等。
为此,在一种可能的实现方式中,S12或者S3023:从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源,包括:
S31:从所述资源服务器获取所述目标文件类型对应的待校验引擎资源和校验文件;
S32:根据所述待校验引擎资源生成对应的校验签名;
S33:响应于所述校验签名通过了所述校验文件的合法性校验,将所述待校验引擎资源确定为所述目标文件引擎资源。
由于终端设备在从资源服务器获取待校验引擎资源时,还会获取对应的校验文件,该校验文件可以是基于目标文件引擎资源生成的,用于校验该目标文件引擎资源合法性的依据。该合法性可以包括资源完整性、来源合法性等。
也就是在完成合法性校验之前,终端设备先将从资源服务器获取的文件引擎资源记为待校验引擎资源,并基于待校验引擎资源生成对应的校验签名,例如当合法性校验包括完整性校验时,终端设备可以将待校验引擎资源的前4096个字节数据执行签名计算得到校验签名,根据校验文件中的完整性签名与校验签名的差异,确定待校验引擎资源是否完整,即是否与资源服务器发出时一致,若完整,则确定通过完整性校验,待校验引擎资源在从资源服务器传输至终端设备期间未被篡改,终端设备可将待校验引擎资源确定为目标文件引擎资源。
从而通过合法性校验,可以避免出现将非法文件引擎资源进行加载的风险,提高了预览安全性。
如前所述,终端设备在本地保存有文件引擎资源时,可以在文件引擎资源适用于用户预览需求时确定对应的目标文件版本。在一些场景下,终端设备保存的文件引擎资源是从资源服务器获取的,故为了能够让终端设备记录的版本信息更为准确,终端设备可以在从资源服务器获取文件引擎资源时进行版本信息的记录。
为此,在一种可能的实现方式中,所述方法还包括:响应于获取所述目标文件引擎资源,更新本地保存的引擎资源版本信息库中所述目标文件类型对应的版本信息。
在本实现方式中,是以目标文件引擎资源作为示例进行的说明,当终端设备从资源服务器获取目标文件引擎资源时,目标文件引擎资源会暂时保存在终端设备本地,即有可能在后续的文件预览过程中被调用到,故为了能够在调用时可以明确目标文件引擎资源的版本信息,终端设备可以将该版本信息更新到引擎资源版本信息库中,该引擎资源版本信息库用于对终端设备本地保存的文件引擎资源的版本信息进行统一维护。当终端设备在后续获取适用于目标文件引擎资源的用户预览需求时,若此时仍然在本地保存有目标文件引擎资源,可以通过引擎资源版本信息库查询到的目标文件引擎资源对应的版本信息。
由此,终端设备可以通过引擎资源版本信息库有效、统一的维护本地所保存文件引擎资源的版本信息,提升了通过本地保存文件引擎资源进行文件预览的准确性。
接下来说明本申请实施例中如何针对并发性的预览需求进行处理的机制。
在一种可能的实现方式中,所述方法还包括:
将所述目标预览任务加入任务队列,所述任务队列包括尚未完成文件预览的预览任务。
相应的,S304:通过加载完成的所述目标文件引擎资源对所述预览任务对应的所述目标文件进行预览显示,包括:
S3041:在所述目标文件引擎资源在所述内存中加载完成后,从所述任务队列中读取所述目标预览任务;
S3042:通过所述目标文件引擎资源对所述预览任务对应的所述目标文件进行预览显示。
也就是说,终端设备可以把不能立刻处理的目标预览任务先加入任务队列中,该任务队列中排列着尚未完成文件预览的预览任务,然后通过任务提取机制(例如先进先出等)从任务队列中提取预览任务(例如目标预览任务)进行处理。
当终端设备明确目标文件引擎资源在本地内存中加载完成时,确定具备了处理目标预览任务的条件,可以基于任务提取机制从任务队列中提取出目标预览任务,通过目标文件引擎资源对该目标预览任务对应的目标文件进行预览显示。
基于引入的任务队列,可以在预览任务较多时通过任务队列进行缓存,避免出现预览错误或者漏处理,提升了文件预览的稳健性和准确性,并可对高并发的预览场景进行有效的支持。
如前所述,终端设备可以在本地保存文件引擎资源,但是,基于节约终端设备本地存储资源的需求,可以在一定时机下删除本地的文件引擎资源,但是,何时删除才能避免过多的重新从资源服务器获取文件引擎资源,以提升文件引擎资源的利用效率是需要解决的问题。
故在一种可能的实现方式中,在对所述目标文件的预览显示结束后,所述方法还包括:
S41:确定所述任务队列中预览任务所对应待预览文件的文件类型;
S42:响应于所述文件类型中包括所述目标文件类型,在所述内存中保留所述目标文件引擎资源;
S43:响应于所述文件类型中不包括所述目标文件类型,从所述内存中删除所述目标文件引擎资源。
由于任务队列中的预览任务均是需要进行预览处理,但尚未进行处理的任务,也就是说,这些预览任务即将被处理,故当终端设备确定任务队列中包括涉及预览目标文件类型的文件的预览任务,可以在内存中保留已经加载完成的目标文件引擎资源,之后当提取到该预览任务时,可以直接通过内存中的目标文件引擎资源实现文件预览,而不再需要重新向内存中加载目标文件引擎资源,大大提升了预览响应速度。例如在S3021对应的实施例中,终端设备从本地获取的目标文件引擎资源就可以是通过上述方式保留的。
而当确定任务队列中的预览任务并不涉及目标文件类型的文件的预览时,相当于说明目标文件引擎资源暂时不会被调用进行预览,此时还在内存中驻留目标文件引擎资源就属于无效占用内存了,可以从内存中删除目标文件引擎资源,提高内存资源的利用效率。
由此,可以基于任务队列中预览任务所涉及的文件类型,实现内存中文件引擎资源的动态加载,提升了终端设备本地文件引擎资源的使用效率,降低与资源服务器的交互次数。
文件引擎资源可以包括多种资源类型,例如原生so库、Java库、资源文件等类型的呈现形式。同一个文件类型对应的文件引擎资源可以涉及多种资源类型的文件引擎资源,不同文件类型的文件引擎资源可以相同,也可以不同。故终端设备每一次向内存中加载的目标文件引擎资源,可能会涉及到不同资源类型的目标文件引擎资源的加载。即使在不同次加载同一个目标文件引擎资源,该目标文件引擎资源在不同次加载时对应的资源类型也有可能不同,例如第一次加载的是原生so库的目标文件引擎资源,第二次加载的是Java库的目标文件引擎资源。
如图4所示,从两个维度对文件引擎资源进行了说明。左侧中示出了文件引擎资源可以对应于不同的文件类型,例如用于对PDF文件进行预览,则可以记为PDF类型资源,对word文件进行预览,则可以记为word类型资源,对txt文件进行预览,则可以记为txt类型资源。
左侧中示出了文件引擎资源可能的三种资源类型,例如原生so库、Java库或资源文件,需要说明的是,图4中仅为示例,并不限定文件引擎资源的资源类型仅能有三类,可以还有其他的资源类型。
除此之外,在文件引擎资源通过资源服务器进行统一维护时,文件引擎资源还可以具有对应的校验文件,可以在终端设备请求获取文件引擎资源时将其对应的该校验文件一并发送给终端设备,以便终端设备基于该校验文件对接收到的待定引擎资源进行合法性校验。
由于不同资源类型的目标文件引擎资源的加载机制可能有所区别,故在一种可能的实现方式中,S303:内存中加载所述目标文件引擎资源,包括:
S3031:确定所述目标文件引擎资源的资源类型;
S3032:从多种加载方式中确定与所述资源类型对应的目标加载方式;
S3033:通过所述目标加载方式在内存中加载所述目标文件引擎资源。
在加载前确定目标文件引擎资源的资源类型,使得终端设备可以使用对应该资源类型的正确加载方式在内存中加载该目标文件引擎资源,避免出现使用错误方式加载目标文件引擎资源的情况,提高了目标文件引擎资源的加载精度和效率。
接下来结合图5和图6说明终端设备在获取目标文件引擎资源后的处理方式。图5示出的是终端设备和服务器配合完成文件预览显示的场景,基于功能进行了模块化的分解说明。
资源服务器在此场景中提供了文件引擎资源服务,对于终端设备,在其中通过客户端SDK进行了文件预览引擎的安装,文件预览引擎包括文件预览引擎核心API、文件引擎资源版本管理和动态加载器三个功能模块。
其中,文件引擎资源服务用于管理文件引擎资源的版本和向终端设备下发。文件预览引擎核心API用于为文件预览提供对应的文件预览接口。文件引擎资源管理用于和资源服务器进行通讯,并对本地的文件引擎资源的版本管理。动态加载器用于实现将文件引擎资源在内存中的动态加载。
在终端设备从资源服务器获取目标文件引擎资源后,会基于上述三个功能模块执行校验、预编辑、链接、加载、执行等步骤。
1.校验:动态加载器在文件引擎资源被加载到内存前,首先对获取文件引擎资源进行解压缩(在文件引擎资源被压缩后传输的情况下);利用解压可以得到文件引擎资源和对应的校验文件,其中包含的SHA签名信息A1,将文件引擎资源的前4096个字节数据执行SHA计算所得签名A2,将AI和A2进行对比,若A1=A2,则校验成功,确定文件引擎资源是完整的,可以加载;否则校验失败,不会加载该文件引擎资源。
2.预编译:校验成功之后确定文件引擎资源的资源类型,如果是java库,终端设备可以通过调用dex2oat方法,对java库文件执行预编译操作,预编译操作会生成oat文件,存放在应用安装目录。如果是原生so库或者资源文件,则将其拷贝到应用的外部存储目录,存放于sdcard中。
3.链接:链接有两种情况,一种是通过建立软链接将存储在外部存储目录的资源文件通过内容提供者(ContentProvider)建立软链接,让文件预览引擎可以通过ContentProvider直接访问到外部存储目录的文件引擎资源。另一种情况是针对原生so文件,由于so文件存在依赖其so信息的情况,在so文件进行加载时,如果被依赖的so信息没有被预先加载,会导致运行异常;针对这种情况,在本申请实施例中通过脚本执行Runtime.exec执行‘readelf-d’命令,获取命令的执行结果,并用关键字(SharedLibrary)提取so文件的依赖项目,获取so文件所依赖的其他so信息,并将依赖的其他so信息进行缓存。
4.加载:加载的过程基于资源类型分为不同情况,在本申请实施例中主要基于前述三种资源类型进行说明:
a.针对java库文件,针对java库文件的加载,终端设备可以通过构造ClassLoader,然后利用构造的classloader从应用安装目录中加载预编译生成的oat文件。
b.针对so文件,终端设备利用与a中相同的ClassLoader,并根据步骤3中的缓存的其他so信息,反射获取ClassLoader的mNativeLib对象(数组),并将so文件的路径加入到mNativeLib对象的最前面。
c.针对资源文件(图片等),由于在链接的过程中已经通过ContentProvider建立全局的软链接,所以终端设备可以通过ContentProvider提供的schema协议直接进行访问。
接下来结合图7说明本申请实施例的文件预览方案。
步骤1:核心引擎API被调用
用户使用文件预览引擎的引擎核心API提供的openFile接口,尝试打开目标文件,由此生成预览任务。
步骤2:缓存预览任务
引擎核心API模块可以封装openFile接口参数,缓存用于预览目标文件的预览任务到一个任务队列。
步骤3:获取目标文件类型
终端设备可以从openFile的参数中,获取当前需要打开的目标文件的目标文件类型,根据目标文件类型获取对应的目标文件引擎资源。其对应关系为,如果是pdf类型的文件,则表示需要加载实现预览pdf类型的文件引擎资源;其他文件类型对应的文件引擎资源可以依此类推。
步骤4:获取目标版本信息
步骤5:判断本地是否存在对应的文件引擎资源
通过上一步骤3,从openFile参数中提取到目标文件类型后(TYPE-A),通过文件引擎资源版本管理模块,查询本地是否存在对应的目标文件引擎资源以及对应的目标版本信息。如果没有,跳转到步骤8,如果有,执行步骤6
步骤6:与最新版本信息进行比对
利用获取到的目标版本信息,通过和资源服务器中的文件预览引擎资源服务通讯,判断当前目标文件类型(TYPE-A)的目标文件引擎资源是否为最新;如果为最新版本的文件引擎资源,则尝试加载目标文件引擎资源(步骤8),否则尝试从资源服务器获取目标文件引擎资源(步骤7)。
步骤7:获取目标文件引擎资源
根据目标文件类型(TYPE-A)在线从资源服务器下载目标文件引擎资源,下载成功则将目标文件引擎资源的版本信息更新本地引擎资源版本信息库。
步骤8:加载目标文件引擎资源
解压缩下载的或者本地的目标文件引擎资源,并按照目标文件引擎资源中的资源类型执行动态加载。
步骤9:读取预览任务执行预览
目标文件引擎资源动态加载完成后,读取任务队列中缓存的目标预览任务,并执行该目标预览任务打开对应的目标文件。
步骤10:回调通知
文件打开任务完成之后,通知文件打开任务的调用发起者,文件预览成功信息。
目标预览任务完成后,本次任务中所加载的目标文件引擎资源进入回收阶段,如果在当前的任务队列中没有涉及目标文件类型的预览任务,则直接回收目标文件引擎资源;否则继续保留动态加载到内存中的该目标文件引擎资源。
在前述图2-图7所对应实施例的基础上,图8为本申请实施例提供的一种文件预览装置的装置结构图,所述文件预览装置800包括获取单元801、加载单元802和预览单元803:
所述获取单元801,用于通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
所述获取单元801还用于根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
所述加载单元802,用于在内存中加载所述目标文件引擎资源;
所述预览单元803,用于通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
在一种可能的实现方式中,所述获取单元还用于响应于本地保存有所述目标文件类型对应的待定文件引擎资源,将所述待定文件引擎资源确定为所述目标文件引擎资源。
在一种可能的实现方式中,所述获取单元还用于:
响应于本地保存有所述目标文件类型对应的待定文件引擎资源,确定所述待定文件引擎资源的目标版本信息;
响应于所述目标版本信息为所述目标文件类型对应的文件引擎资源的最新版本信息,将所述待定文件引擎资源确定为所述目标文件引擎资源。
在一种可能的实现方式中,所述装置还包括发送单元:
所述发送单元,用于响应于所述目标版本信息不是所述目标文件类型对应的最新版本信息,向资源服务器发送针对所述目标文件类型的资源获取请求;
所述获取单元还用于从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
在一种可能的实现方式中,所述装置还包括发送单元:
所述发送单元,用于向资源服务器发送版本校验请求,所述版本校验请求包括所述目标文件类型和所述目标版本信息;
所述获取单元还用于从所述资源服务器获取基于所述目标文件类型和所述目标版本信息确定的版本校验结果,所述版本校验结果包括所述目标版本信息是否为最新版本信息的校验信息。
在一种可能的实现方式中,所述获取单元还用于:
响应于本地未保存有所述目标文件类型对应的待定文件引擎资源,向资源服务器发送针对所述目标文件类型的资源获取请求;
从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
在一种可能的实现方式中,所述装置还包括入队单元:
所述入队单元,用于将所述目标预览任务加入任务队列,所述任务队列包括尚未完成文件预览的预览任务;
所述预览单元还用于:
在所述目标文件引擎资源在所述内存中加载完成后,从所述任务队列中读取所述目标预览任务;
通过所述目标文件引擎资源对所述预览任务对应的所述目标文件进行预览显示。
在一种可能的实现方式中,所述装置还包括确定单元:
所述确定单元还用于:
在对所述目标文件的预览显示结束后确定所述任务队列中预览任务所对应待预览文件的文件类型;
响应于所述文件类型中包括所述目标文件类型,在所述内存中保留所述目标文件引擎资源;
响应于所述文件类型中不包括所述目标文件类型,从所述内存中删除所述目标文件引擎资源。
在一种可能的实现方式中,所述获取单元还用于:
从所述资源服务器获取所述目标文件类型对应的待校验引擎资源和校验文件;
根据所述待校验引擎资源生成对应的校验签名;
响应于所述校验签名通过了所述校验文件的合法性校验,将所述待校验引擎资源确定为所述目标文件引擎资源。
在一种可能的实现方式中,所述加载单元还用于:
确定所述目标文件引擎资源的资源类型;
从多种加载方式中确定与所述资源类型对应的目标加载方式;
通过所述目标加载方式在内存中加载所述目标文件引擎资源。
在一种可能的实现方式中,所述装置还包括更新单元,所述更新单元用于响应于获取所述目标文件引擎资源,更新本地保存的引擎资源版本信息库中所述目标文件类型对应的版本信息。
由此可见,在提供预览服务时,通过文件预览接口获取针对目标文件的目标预览任务,根据目标文件的目标文件类型获取对应的目标文件引擎资源,并在内存中加载,通过加载完成的目标文件引擎资源可对所述目标预览任务对应的所述目标文件进行预览显示。由于目标文件引擎资源为用于预览不同文件类型的多个文件引擎资源中的一个,即当确定预览需求为目标文件类型时,仅需要加载针对目标文件类型的引擎资源到内存中便可提供满足该预览需求的服务,而无需在内存加载全部的多个文件引擎资源,从而实现了按需加载的文件预览服务。按需加载的方式可以减少文件引擎资源的加载量,由此不仅提升了文件预览的响应效率,而且在内存中不会加载无用的文件引擎资源,降低了内存的无效占用。
本申请实施例还提供了一种计算机设备,该计算机设备为前述介绍的计算机设备,可以包括终端设备或服务器,前述的文件预览装置可以配置在该计算机设备中。下面结合附图对该计算机设备进行介绍。
若该计算机设备为终端设备,请参见图9所示,本申请实施例提供了一种终端设备,以终端设备为手机为例:
图9示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,简称RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对手机的各个构成部件进行具体的介绍:
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入设备1432。
显示单元1440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1440可包括显示面板1441。
手机还可包括至少一种传感器1450,比如光传感器、运动传感器以及其他传感器。
音频电路1460、扬声器1461,传声器1462可提供用户与手机之间的音频接口。
WiFi属于短距离无线传输技术,手机通过WiFi模块1470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器1480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行手机的各种功能和处理数据。
手机还包括给各个部件供电的电源1490(比如电池)。
在本实施例中,该终端设备所包括的处理器1480还具有以下功能:
通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
在内存中加载所述目标文件引擎资源;
通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
若计算机设备为服务器,本申请实施例还提供一种服务器,请参见图10所示,图10为本申请实施例提供的服务器1500的结构图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,简称CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作***1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于图10所示的服务器结构。
另外,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的方法。
本申请实施例还提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。而且本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种文件预览方法,其特征在于,所述方法包括:
通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
在内存中加载所述目标文件引擎资源;
通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标文件类型获取所述目标文件类型对应的目标文件引擎资源,包括:
响应于本地保存有所述目标文件类型对应的待定文件引擎资源,将所述待定文件引擎资源确定为所述目标文件引擎资源。
3.根据权利要求2所述的方法,其特征在于,所述响应于本地保存有所述目标文件类型对应的待定文件引擎资源,将所述待定文件引擎资源确定为所述目标文件引擎资源,包括:
响应于本地保存有所述目标文件类型对应的待定文件引擎资源,确定所述待定文件引擎资源的目标版本信息;
响应于所述目标版本信息为所述目标文件类型对应的文件引擎资源的最新版本信息,将所述待定文件引擎资源确定为所述目标文件引擎资源。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述目标版本信息不是所述目标文件类型对应的最新版本信息,向资源服务器发送针对所述目标文件类型的资源获取请求;
从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向资源服务器发送版本校验请求,所述版本校验请求包括所述目标文件类型和所述目标版本信息;
从所述资源服务器获取基于所述目标文件类型和所述目标版本信息确定的版本校验结果,所述版本校验结果包括所述目标版本信息是否为最新版本信息的校验信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标文件类型获取所述目标文件类型对应的目标文件引擎资源,包括:
响应于本地未保存有所述目标文件类型对应的待定文件引擎资源,向资源服务器发送针对所述目标文件类型的资源获取请求;
从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标预览任务加入任务队列,所述任务队列包括尚未完成文件预览的预览任务;
所述通过加载完成的所述目标文件引擎资源对所述预览任务对应的所述目标文件进行预览显示,包括:
在所述目标文件引擎资源在所述内存中加载完成后,从所述任务队列中读取所述目标预览任务;
通过所述目标文件引擎资源对所述预览任务对应的所述目标文件进行预览显示。
8.根据权利要求7所述的方法,其特征在于,在对所述目标文件的预览显示结束后,所述方法还包括:
确定所述任务队列中预览任务所对应待预览文件的文件类型;
响应于所述文件类型中包括所述目标文件类型,在所述内存中保留所述目标文件引擎资源;
响应于所述文件类型中不包括所述目标文件类型,从所述内存中删除所述目标文件引擎资源。
9.根据权利要求4或6所述的方法,其特征在于,所述从所述资源服务器获取版本信息为所述最新版本信息的所述目标文件引擎资源,包括:
从所述资源服务器获取所述目标文件类型对应的待校验引擎资源和校验文件;
根据所述待校验引擎资源生成对应的校验签名;
响应于所述校验签名通过了所述校验文件的合法性校验,将所述待校验引擎资源确定为所述目标文件引擎资源。
10.根据权利要求1所述的方法,其特征在于,所述在内存中加载所述目标文件引擎资源,包括:
确定所述目标文件引擎资源的资源类型;
从多种加载方式中确定与所述资源类型对应的目标加载方式;
通过所述目标加载方式在内存中加载所述目标文件引擎资源。
11.根据权利要求4或6的方法,其特征在于,所述方法还包括:
响应于获取所述目标文件引擎资源,更新本地保存的引擎资源版本信息库中所述目标文件类型对应的版本信息。
12.一种文件预览装置,其特征在于,所述装置包括获取单元、加载单元和预览单元:
所述获取单元,用于通过文件预览接口获取针对目标文件的目标预览任务,所述目标预览任务包括所述目标文件的目标文件类型;
所述获取单元还用于根据所述目标文件类型,获取所述目标文件类型对应的目标文件引擎资源;
所述加载单元,用于在内存中加载所述目标文件引擎资源;
所述预览单元,用于通过加载完成的所述目标文件引擎资源对所述目标预览任务对应的所述目标文件进行预览显示。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-11中任意一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-11中任意一项所述的方法。
15.一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行权利要求1-11中任意一项所述的方法。
CN202211372498.5A 2022-11-03 2022-11-03 一种文件预览方法和相关装置 Pending CN118034895A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211372498.5A CN118034895A (zh) 2022-11-03 2022-11-03 一种文件预览方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211372498.5A CN118034895A (zh) 2022-11-03 2022-11-03 一种文件预览方法和相关装置

Publications (1)

Publication Number Publication Date
CN118034895A true CN118034895A (zh) 2024-05-14

Family

ID=90988143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211372498.5A Pending CN118034895A (zh) 2022-11-03 2022-11-03 一种文件预览方法和相关装置

Country Status (1)

Country Link
CN (1) CN118034895A (zh)

Similar Documents

Publication Publication Date Title
US9792623B2 (en) Advertisement processing method and apparatus
CN107122379B (zh) 收集与本地存储的数据文件相关联的事务数据
US7784048B2 (en) Mobile communication terminal and application control method
NZ536004A (en) System and method for use of multiple applications in a mobile computing environment
CN109918191B (zh) 一种业务请求防频的方法和装置
EP4270299A1 (en) Operating system upgrade method, electronic device, and storage medium
WO2022000869A1 (zh) 小程序的批量处理方法、装置、电子设备以及可读存储介质
CN112714158A (zh) 事务处理方法、中继网络、跨链网关、***、介质和设备
CN111240766A (zh) 应用启动方法、装置、电子设备及计算机可读存储介质
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
CN113961520A (zh) 动态文件挂载方法、***、计算机设备及可读存储介质
US10938773B2 (en) Method and apparatus for synchronizing contact information and medium
CN113590169B (zh) 应用部署方法、应用部署***和计算机可读存储介质
US12014170B2 (en) Mini program batch processing method and apparatus, electronic device, and readable storage medium
CN110574006B (zh) 用于自动同步设备上响应与条件的***和方法
CN114780615A (zh) 错误码管理方法及其装置
CN112883006B (zh) 一种企业级容器镜像加速方法、装置、电子设备和存储介质
CN115878138B (zh) 应用预下载方法、装置、计算机、存储介质
CN108021459B (zh) 跨进程发送打点日志的方法及装置
CN118034895A (zh) 一种文件预览方法和相关装置
CN114115941A (zh) 资源发送方法、页面渲染方法、装置、电子设备和介质
CN113515299A (zh) 软件开发工具包sdk热升级方法、装置、设备及存储介质
CN112416698B (zh) 监控***的扩展方法及装置、存储介质及电子设备
CN114077587A (zh) 基于规则引擎的业务处理方法、规则引擎、介质和设备
CN110659309A (zh) 内存数据库通信方法、装置、服务器以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication