CN113656357A - 文件管理方法、装置、系统及存储介质 - Google Patents
文件管理方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN113656357A CN113656357A CN202111022167.4A CN202111022167A CN113656357A CN 113656357 A CN113656357 A CN 113656357A CN 202111022167 A CN202111022167 A CN 202111022167A CN 113656357 A CN113656357 A CN 113656357A
- Authority
- CN
- China
- Prior art keywords
- file
- export
- sdk
- server
- target
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000009795 derivation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种文件管理方法、装置、系统及存储介质,该方法包括:业务服务端接收客户端发送的文件导出请求,根据预设参数初始化SDK的接口,通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;业务服务端通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,以使SDK服务端存储该文件导出记录,业务服务端根据存储地址更新SDK服务端中的文件导出记录,以向客户端提供文件查询服务,进而下载目标文件。本申请能够实现文件导出与业务逻辑的解耦。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种文件管理方法、装置、系统及存储介质。
背景技术
业务系统在日常使用中会生成、积存大量业务数据,而业务人员通常需要在业务系统中导出比如各种各样的报表对应的文件,基于导出的文件,进行业务分析、撰写报告等。
目前,在导出文件时,通常是业务系统中各业务模块按需提供文件导出功能,即文件导出请求中包含有业务数据查询逻辑、报表的组装以及导出文件的存储方式,各业务模块根据对应文件导出请求,查询业务数据的逻辑,并按照报表的组装方式进行组件得到待导出的文件,进而按照上述存储方式存储该文件。上述导出文件的方式与业务逻辑的耦合性高。
发明内容
本申请提供一种文件管理方法、装置、系统及存储介质,以解决导出文件的方式与业务逻辑的耦合性高的问题。
第一方面,本申请提供一种文件管理方法,应用于业务服务端,业务服务端集成有用于文件导出的软件开发工具包(Software Development Kit,SDK),该文件管理方法包括:
响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,预设参数包括业务标识,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务;
通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;
通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,文件导出记录包括业务标识;
根据存储地址更新SDK服务端中的文件导出记录,SDK服务端用于向客户端提供文件查询服务。
可选的,通过SDK的接口执行文件导出任务,包括:通过SDK的接口对应的回调方法,获取目标文件对应的数据流;根据数据流生成目标文件;向云存储服务器发送目标文件;接收云存储服务器发送的存储地址。
可选的,获取目标文件对应的数据流,包括:通过SDK的接口将文件导出任务加入异步线程池;在异步线程池中不存在目标任务时,通过SDK的接口对应的回调方法,获取目标文件对应的数据流,目标任务加入异步线程池的时刻早于将文件导出任务加入异步线程池的时刻。
可选的,该文件管理方法还包括:在异步线程池中存在目标任务时,向客户端发送第一提示信息,第一提示信息用于指示目标文件导出中。
可选的,根据数据流生成目标文件,包括:若SDK的接口用于生成单个文件,则根据数据流生成目标文件;若SDK的接口用于生成多个文件的压缩包,则根据数据流生成多个待处理文件,对多个待处理文件进行压缩处理,生成目标文件。
可选的,通过SDK的接口执行文件导出任务,包括:通过SDK的接口获取业务服务端的可用内存;在确定可用内存大于或等于内存阈值时,通过SDK的接口执行文件导出任务。
可选的,该文件管理方法还包括:在可用内存小于内存阈值时,向客户端发送第二提示信息,第二提示信息用于指示目标文件导出失败。
可选的,通过SDK的接口执行文件导出任务,包括:获取在预设时段内接收到客户端发送的文件导出请求的数量;在确定文件导出请求的数量小于或等于次数阈值时,通过SDK的接口执行文件导出任务。
可选的,该文件管理方法还包括:在确定文件导出请求的数量大于次数阈值时,向客户端发送第三提示信息,第三提示信息用于指示用户暂停文件导出。
可选的,该文件管理方法还包括:确定目标文件的有效时间信息,有效时间信息用于指示可通过存储地址下载目标文件的时间;向云存储服务器发送有效时间信息。
第二方面,本申请提供一种文件管理方法,应用于SDK服务端,SDK服务端用于向客户端提供文件查询服务,该文件管理方法包括:
接收来自业务服务端的文件导出任务对应的文件导出记录,文件导出记录包括业务标识,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;
存储文件导出记录;
接收存储地址;
根据存储地址更新文件导出记录。
可选的,该文件管理方法还包括:接收来自客户端的文件查询请求,文件查询请求包含待查询业务标识;获取待查询业务标识对应的目标文件导出记录;向客户端发送目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
第三方面,本申请提供一种文件管理方法,应用于客户端,该文件管理方法包括:
接收文件导出指令;
响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
可选的,该文件管理方法还包括:响应于文件查询指令,将文件查询请求发送给SDK服务端,文件查询请求包含待查询业务标识;接收来自SDK服务端的目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
可选的,该文件管理方法还包括:接收来自业务服务端的提示信息,提示信息包括第一提示信息、第二提示信息和第三提示信息中的至少一种,第一提示信息用于指示目标文件导出中,第二提示信息用于指示目标文件导出失败,第三提示信息用于指示用户暂停文件导出;显示提示信息。
第四方面,本申请提供一种文件管理装置,应用于业务服务端,业务服务端集成有用于文件导出的SDK,该文件管理装置包括:
初始化模块,用于响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,预设参数包括业务标识,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务;
导出模块,用于通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;
发送模块,用于通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,文件导出记录包括业务标识;
处理模块,用于根据存储地址更新SDK服务端中的文件导出记录,SDK服务端用于向客户端提供文件查询服务。
可选的,导出模块具体用于:通过SDK的接口对应的回调方法,获取目标文件对应的数据流;根据数据流生成目标文件;向云存储服务器发送目标文件;接收云存储服务器发送的存储地址。
可选的,导出模块在用于获取目标文件对应的数据流时,具体用于:通过SDK的接口将文件导出任务加入异步线程池;在异步线程池中不存在目标任务时,通过SDK的接口对应的回调方法,获取目标文件对应的数据流,目标任务加入异步线程池的时刻早于将文件导出任务加入异步线程池的时刻。
可选的,发送模块还用于:在异步线程池中存在目标任务时,向客户端发送第一提示信息,第一提示信息用于指示目标文件导出中。
可选的,导出模块在用于根据数据流生成目标文件时,具体用于:若SDK的接口用于生成单个文件,则根据数据流生成目标文件;若SDK的接口用于生成多个文件的压缩包,则根据数据流生成多个待处理文件,对多个待处理文件进行压缩处理,生成目标文件。
可选的,导出模块具体用于:通过SDK的接口获取业务服务端的可用内存;在确定可用内存大于或等于内存阈值时,通过SDK的接口执行文件导出任务。
可选的,发送模块还用于:在可用内存小于内存阈值时,向客户端发送第二提示信息,第二提示信息用于指示目标文件导出失败。
可选的,导出模块具体用于:获取在预设时段内接收到客户端发送的文件导出请求的数量;在确定文件导出请求的数量小于或等于次数阈值时,通过SDK的接口执行文件导出任务。
可选的,发送模块还用于:在确定文件导出请求的数量大于次数阈值时,向客户端发送第三提示信息,第三提示信息用于指示用户暂停文件导出。
可选的,导出模块还用于:确定目标文件的有效时间信息,有效时间信息用于指示可通过存储地址下载目标文件的时间;向云存储服务器发送有效时间信息。
第五方面,本申请提供一种文件管理装置,应用于SDK服务端,SDK服务端用于向客户端提供文件查询服务,该文件管理装置包括:
接收模块,用于接收来自业务服务端的文件导出任务对应的文件导出记录,文件导出记录包括业务标识,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;以及接收存储地址;
存储模块,用于存储文件导出记录;
更新模块,用于根据存储地址更新文件导出记录。
可选的,接收模块还用于:接收来自客户端的文件查询请求,文件查询请求包含待查询业务标识;该文件管理装置还包括获取模块,用于获取待查询业务标识对应的目标文件导出记录;该文件管理装置还包括发送模块,用于向客户端发送目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
第六方面,本申请提供一种文件管理装置,应用于客户端,该文件管理装置包括:
接收模块,用于接收文件导出指令;
发送模块,用于响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
可选的,发送模块还用于:响应于文件查询指令,将文件查询请求发送给SDK服务端,文件查询请求包含待查询业务标识;接收模块还用于接收来自SDK服务端的目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
可选的,接收模块还用于:接收来自业务服务端的提示信息,提示信息包括第一提示信息、第二提示信息和第三提示信息中的至少一种,第一提示信息用于指示目标文件导出中,第二提示信息用于指示目标文件导出失败,第三提示信息用于指示用户暂停文件导出;显示提示信息。
第七方面,本申请提供一种文件管理系统,包括业务服务端、SDK服务端和客户端;
其中,业务服务端用于执行如本申请第一方面所述的文件管理方法,SDK服务端用于执行如本申请第二方面所述的文件管理方法,客户端用于执行如本申请第三方面所述的文件管理方法。
可选的,该文件管理系统还包括云存储服务器,云存储服务器用于存储目标文件,将目标文件在云存储服务器中的存储地址发送给业务服务端,存储地址用于下载目标文件。
第八方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,以实现如本申请第一方面所述的文件管理方法。
第九方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,以实现如本申请第二方面所述的文件管理方法。
第十方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,以实现如本申请第三方面所述的文件管理方法。
第十一方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本申请第一方面所述的文件管理方法。
第十二方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本申请第二方面所述的文件管理方法。
第十三方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本申请第三方面所述的文件管理方法。
第十四方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第一方面所述的文件管理方法。
第十五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第二方面所述的文件管理方法。
第十六方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第三方面所述的文件管理方法。
本申请提供的文件管理方法、装置、系统及存储介质,通过客户端接收文件导出指令,响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;业务服务端响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,通过SDK的接口执行文件导出任务,通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,SDK服务端接收来自业务服务端的文件导出任务对应的文件导出记录,存储文件导出记录,业务服务端根据存储地址更新SDK服务端中的文件导出记录,SDK服务端接收存储地址,根据存储地址更新文件导出记录,以向客户端提供文件查询服务,进而下载目标文件。由于本申请的业务服务端通过标准SDK的接口执行文件导出任务,通过SDK服务端统一管理文件导出记录,因此,能够实现文件导出与业务逻辑的解耦,进而提升文件导出的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的应用场景示意图;
图2为本申请一实施例提供的文件管理方法的信令交互示意图;
图3为本申请另一实施例提供的文件管理方法的信令交互示意图;
图4为本申请一实施例提供的文件管理装置的结构示意图;
图5为本申请另一实施例提供的文件管理装置的结构示意图;
图6为本申请又一实施例提供的文件管理装置的结构示意图;
图7为本申请一实施例提供的文件管理系统的示意图;
图8为本申请另一实施例提供的文件管理系统的示意图;
图9为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
业务系统中各业务模块有各种各样的报表数据需要导出,对应导出的文件用于业务分析、撰写报告等。目前,通常是业务系统中各业务模块自己按需提供文件导出功能,具体文件导出的技术栈有微软文档的Java应用程序编程接口(Apache POI)导出Excel、阿里巴巴Excel导出(Alibaba EasyExcel)组件等,采用对象存储服务(Object StorageService,OSS)存储导出的文件,OSS即为云存储服务器,文件导出流程采用同步处理。上述文件导出方式存在以下问题:
(1)文件导出相关的实现逻辑跟业务逻辑紧密耦合,每一个文件导出请求里都包含了业务数据查询逻辑、表格数据的组装、导出文件的存储方式,业务程序结构不清晰,冗余代码多;
(2)若待导出的数据的数据量很大或数据处理很复杂,且采用的是同步处理,则文件导出结果会耗时很长,进而导致用户在发起文件导出请求的操作页面等待时间过长,经常会出现超时情况,用户体验差;
(3)若待导出的数据的数据量很大或者文件导出请求较多时,业务系统可能会出现内存溢出(Out Of Memory,OOM);
(4)对于导出的大文件,用户在电脑端可能会打不开或者出现卡顿。
基于上述问题,本申请提供一种文件管理方法、装置、系统及存储介质,通过将文件导出的相关逻辑从业务系统中抽象出来,独立为导出模块,业务系统中各业务模块通过使用该导出模块进行文件导出,实现了文件导出与业务逻辑的解耦。
以下,首先对本申请提供的方案的应用场景进行示例说明。
图1为本申请一实施例提供的应用场景示意图。如图1所示,本应用场景中,客户端110向业务服务器120发起文件导出请求,业务服务器120根据文件导出请求进行文件导出,将导出的文件存储至云存储服务器130,客户端110显示导出的文件,以便于下载导出的文件。其中,业务服务器120根据文件导出请求进行文件导出的具体实现过程可以参见下述各实施例的方案。
需要说明的是,图1仅是本申请实施例提供的一种应用场景的示意图,本申请实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。例如,在图1所示的应用场景中,还可以包括数据存储设备,该数据存储设备相对客户端110或者业务服务器120可以是外部存储器,也可以是集成在客户端110或者业务服务器120中的内部存储器。
接下来,通过具体实施例介绍文件管理方法。
图2为本申请一实施例提供的文件管理方法的信令交互示意图。如图2所示,本申请实施例的方法包括:
S201、客户端接收文件导出指令。
本申请实施例中,文件导出指令可以是用户向执行本方法实施例的电子设备输入的,或者,是其它设备向执行本方法实施例的电子设备发送的。示例性地,用户在客户端的文件导出界面设置文件导出的相关参数,比如文件导出的操作人、文件导出对应的导出业务时间范围等,然后点击“导出”按钮,客户端即可接收到文件导出指令。
S202、客户端响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
相应地,业务服务端响应于接收到客户端发送的文件导出请求,执行S203、根据预设参数初始化SDK的接口,预设参数包括业务标识。
该步骤中,示例性地,不同的业务有对应的业务服务端和客户端,比如账单业务有对应的账单业务服务端和账单客户端。示例性地,业务服务端通过项目管理工具(Maven)坐标引入SDK,SDK提供标准接口供业务服务端使用,即业务服务端访问统一的SDK接口执行文件导出任务。对于如何通过Maven坐标引入SDK的具体实现方式可参考目前的相关技术,本申请实施例不再赘述。云存储服务器比如为OSS,存储地址即下载统一资源定位系统(Uniform Resource Locator,URL),用于下载目标文件。预设参数比如为业务服务端通过配置文件配置的参数或者为默认设置的参数。具体地,预设参数比如包括业务标识、文件名称、文件格式、文件有效期、导出状态、操作人、文件导出对应的导出业务时间范围、可用内存阈值、是否是批量导出、OSS地址信息以及用于接收监控到SDK运行状态异常的告警邮件信息等。文件导出请求携带的参数比如包括文件导出的操作人、文件导出对应的导出业务时间范围等。客户端在接收到文件导出指令后,将文件导出请求发送给业务服务端,业务服务端在接收到客户端发送的文件导出请求后,根据预设参数初始化SDK的接口。
S204、业务服务端通过SDK的接口执行文件导出任务。
该步骤中,示例性地,业务服务端在根据预设参数初始化SDK的接口成功后,通过SDK的接口执行文件导出任务,具体的文件导出任务即为业务服务端导出目标文件,并将目标文件存储至OSS,得到目标文件在OSS中的存储地址,该存储地址用于下载目标文件。对于业务服务端如何通过SDK的接口执行文件导出任务,可参考相关技术或者后续实施例,此处不再赘述。
S205、业务服务端通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,文件导出记录包括业务标识。
相应地,SDK服务端接收来自业务服务端的文件导出任务对应的文件导出记录,执行S206、存储文件导出记录。
本申请实施例中,SDK服务端作为公共服务,对外提供服务,即对引入SDK的业务服务端和客户端提供服务,具体服务比如包括记录文件导出任务对应的文件导出记录、管理导出文件的状态、记录导出后的文件对应的存储地址等。访问SDK服务端的细节完全由SDK封装好,业务服务端实现自身的文件导出的业务逻辑即可。业务服务端在通过SDK的接口开始执行文件导出任务后,通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,SDK服务端接收并存储业务服务端发送的文件导出任务对应的文件导出记录,文件导出记录具体包括文件导出请求对应的数据、目标文件的导出状态为导出中。SDK服务端比如将文件导出记录存储到数据库中。
S207、业务服务端根据存储地址更新SDK服务端中的文件导出记录,SDK服务端用于向客户端提供文件查询服务。
相应地,SDK服务端执行S208、接收存储地址,根据存储地址更新文件导出记录。
示例性地,业务服务端通过SDK的接口执行完文件导出任务后,获得了目标文件在OSS中的存储地址,业务服务端根据该存储地址更新SDK服务端中的文件导出记录。具体地,比如业务服务端通过SDK的接口将该存储地址发送给SDK服务端,SDK服务端接收该存储地址,根据该存储地址更新文件导出记录,即SDK服务端将该存储地址添加到文件导出记录中,并将目标文件的导出状态更新为已完成导出。SDK服务端可以根据文件导出记录,向客户端提供文件查询服务,比如用户可以通过客户端查询SDK服务端获得目标文件的导出状态(也可以理解为文件的导出进度),在目标文件的导出状态为已完成导出时,可以通过客户端查询SDK服务端获得目标文件的存储地址,进而根据目标文件的存储地址下载目标文件。
本申请实施例提供的文件管理方法,通过客户端接收文件导出指令,响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;业务服务端响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,通过SDK的接口执行文件导出任务,通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,SDK服务端接收来自业务服务端的文件导出任务对应的文件导出记录,存储文件导出记录,业务服务端根据存储地址更新SDK服务端中的文件导出记录,SDK服务端接收存储地址,根据存储地址更新文件导出记录,以向客户端提供文件查询服务,进而下载目标文件。由于本申请实施例的业务服务端通过标准SDK的接口执行文件导出任务,通过SDK服务端统一管理文件导出记录,因此,能够实现文件导出与业务逻辑的解耦,进而提升文件导出的效率。
图3为本申请另一实施例提供的文件管理方法的信令交互示意图。在上述实施例的基础上,本申请实施例对文件管理方法进行进一步说明,并增加了与云存储服务器的信令交互。如图3所示,本申请实施例的方法可以包括:
S301、客户端接收文件导出指令。
该步骤的具体描述可以参见图2所示实施例中S201步骤的相关描述,此处不再赘述。
S302、客户端响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
相应地,业务服务端响应于接收到客户端发送的文件导出请求,执行S303、根据预设参数初始化SDK的接口,预设参数包括业务标识。
S302步骤和S303步骤的具体描述可以参见图2所示实施例中S202步骤和S203步骤的相关描述,此处不再赘述。
S304、业务服务端通过SDK的接口获取业务服务端的可用内存,确定可用内存大于或等于内存阈值。
该步骤中,内存阈值为上述实施例中的预设参数,比如为业务服务端通过配置文件配置的参数或者为默认设置的参数,可以按需设置。示例性地,根据业务服务端实际的部署环境,业务服务端通过SDK的接口实时获取业务服务端的可用内存。具体地,SDK的接口可以通过Java虚拟机(Java Virtual Machine,JVM)提供的函数接口直接获得业务服务端的可用内存。将业务服务端的可用内存与内存阈值进行比较,可以确定业务服务端的可用内存是否大于或等于内存阈值。在业务服务端的可用内存大于或等于可用内存阈值时,业务服务端通过SDK的接口执行文件导出任务。
可选的,在可用内存小于内存阈值时,业务服务端向客户端发送第二提示信息,第二提示信息用于指示目标文件导出失败。相应地,客户端接收来自业务服务端的第二提示信息,显示第二提示信息。
在业务服务端通过SDK的接口获得了业务服务端的可用内存后,若业务服务端的可用内存小于内存阈值,为了保护业务服务端不出现OOM,则业务服务端发送第二提示信息给客户端,客户端在接收到来自业务服务端的第二提示信息后,提示用户目标文件导出失败。
S304步骤可以理解为内存过载保护策略,通过该内存过载保护策略,可以避免导出目标文件过程中占用内存过大导致业务服务端对应的程序内存溢出而出现服务不可用的情况。
S305、业务服务端获取在预设时段内接收到客户端发送的文件导出请求的数量,确定文件导出请求的数量小于或等于次数阈值。
该步骤中,预设时段和次数阈值可以按需设置。示例性地,业务服务端通过SDK的接口,可以获得文件导出请求对应的所有参数信息,通过比对参数信息,可以确定是否是同一个文件导出请求,即确定是否是同一个用户通过客户端发出的同样的文件导出指令。业务服务端通过SDK的接口获得客户端在预设时段内发送的文件导出请求的次数后,在确定文件导出请求的数量小于或等于次数阈值时,通过SDK的接口执行文件导出任务。
可选的,在确定文件导出请求的数量大于次数阈值时,业务服务端向客户端发送第三提示信息,第三提示信息用于指示用户暂停文件导出。相应地,客户端接收来自业务服务端的第三提示信息,显示第三提示信息。
业务服务端通过SDK的接口获得客户端在预设时段内发送的文件导出请求的次数后,若确定文件导出请求的数量大于次数阈值,则业务服务端发送第三提示信息给客户端,客户端在接收到业务服务端发送的第三提示信息后,提示用户暂停文件导出。
S305步骤可以理解为文件导出频率限制策略,通过该文件导出频率限制策略,可以实现导出文件的频率限制,避免同一个文件导出请求在一定时间内频繁操作。
需要说明的是,本申请实施例对S304步骤和S305步骤执行的先后顺序不做限制,即可以先执行S304步骤再执行S305步骤,或者,先执行S305步骤再执行S304步骤。在文件导出的过程中,会有大量的数据要在内存中操作,通过S304步骤和S305步骤,可以避免因为有大量数据导出而出现OOM的情况,保证了业务服务端的服务可用性。
本申请实施例中,图2中S204步骤可以进一步细化为如下的S306步骤:
S306、业务服务端通过SDK的接口对应的回调方法,获取目标文件对应的数据流,根据数据流生成目标文件。
示例性地,业务服务端在执行完S304步骤和S305步骤后,确定可以通过SDK的接口执行文件导出任务。业务服务端在通过SDK的接口执行文件导出任务时,会通过SDK接口的中的参数接口名称指定文件导出的实现类,该实现类即为实现SDK的接口对应的回调方法,用于查询要导出的目标文件对应的业务数据,因为每个业务的导出文件需求不一样,所以该实现类由业务服务端自己实现。业务服务端通过SDK的接口调用业务服务端提供的实现SDK的接口对应的回调方法,获取目标文件对应的业务数据格式化后的数据流,根据该数据流,生成对应的目标文件,即导出了目标文件。
进一步地,可选的,业务服务端获取目标文件对应的数据流,可以包括:通过SDK的接口将文件导出任务加入异步线程池;在异步线程池中不存在目标任务时,通过SDK的接口对应的回调方法,获取目标文件对应的数据流,目标任务加入异步线程池的时刻早于将文件导出任务加入异步线程池的时刻。
异步线程池用于异步导出目标文件。示例性地,业务服务端通过SDK的接口将文件导出任务加入异步线程池后,在异步线程池中不存在目标任务时,即异步线程池空闲,则异步线程池立即执行文件导出任务,即通过SDK的接口对应的回调方法,获取目标文件对应的数据流。
在上述实施例的基础上,可选的,在异步线程池中存在目标任务时,业务服务端向客户端发送第一提示信息,第一提示信息用于指示目标文件导出中。相应地,客户端接收来自业务服务端的第一提示信息,显示第一提示信息。
在异步线程池中存在目标任务时,即异步线程池繁忙,则业务服务端向客户端发送第一提示信息,以让客户端提示用户目标文件导出中,并排队等候直至异步线程池空闲,再执行文件导出任务。
进一步地,可选的,业务服务端根据数据流生成目标文件,包括:若SDK的接口用于生成单个文件,则根据数据流生成目标文件;若SDK的接口用于生成多个文件的压缩包,则根据数据流生成多个待处理文件,对多个待处理文件进行压缩处理,生成目标文件。
示例性地,SDK接口提供两个接口方法供业务服务端使用,这两个接口方法分别用于单个文件导出以及多个文件压缩后导出。具体地,SDK接口通过接口参数“是否批量导出”来确定生成单个文件还是生成多个文件的压缩包。若业务服务端通过SDK接口生成单个文件,则SDK接口根据数据流生成目标文件,该目标文件为单个文件。若业务服务端通过SDK接口生成多个文件的压缩包,则SDK接口根据数据流生成多个待处理文件,对多个待处理文件进行压缩处理,生成目标文件,该目标文件为压缩包。
SDK接口支持生成压缩包格式的目标文件,能够解决导出大数据量数据时生成的目标文件过大,导致用户打不开目标文件,或者用户打开目标文件时卡顿的问题,提升了用户体验。
进一步地,可选的,业务服务端确定目标文件的有效时间信息,有效时间信息用于指示可通过存储地址下载目标文件的时间;向云存储服务器发送有效时间信息。
示例性地,目标文件的有效期为预设参数,比如为业务服务端通过配置文件配置的参数或者为默认设置的参数,可以按需设置。业务服务端在导出目标文件后,向云存储服务器发送目标文件的同时,可以通过SDK的接口将目标文件的有效期发送至云存储服务器,云存储服务器保存该有效期,云存储服务器根据该有效期,确定目标文件的存储地址是否可用于下载目标文件,在超过该有效期后,则不能够通过目标文件的存储地址下载目标文件。
S307、业务服务端通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,文件导出记录包括业务标识。
相应地,SDK服务端接收来自业务服务端的文件导出任务对应的文件导出记录,执行S308、存储文件导出记录。
S307步骤和S308步骤的具体描述可以参见图2所示实施例中S205步骤和S206步骤的相关描述,此处不再赘述。
S309、业务服务端向云存储服务器发送目标文件。
业务服务端在导出了目标文件后,向云存储服务器发送目标文件。相应地,云存储服务器在接收到目标文件后,执行S310、存储目标文件,并执行S311、将目标文件的存储地址发送给业务服务端的SDK的接口。相应地,业务服务端接收云存储服务器发送的存储地址。
S312、业务服务端根据存储地址更新SDK服务端中的文件导出记录,SDK服务端用于向客户端提供文件查询服务。
相应地,SDK服务端执行S313、接收存储地址,根据存储地址更新文件导出记录。
S312步骤和S313步骤的具体描述可以参见图2所示实施例中S207步骤和S208步骤的相关描述,此处不再赘述。
S314、客户端响应于文件查询指令,将文件查询请求发送给SDK服务端,文件查询请求包含待查询业务标识。
相应地,SDK服务端接收来自客户端的文件查询请求。
示例性地,用户在客户端的文件导出界面设置文件查询的相关参数,点击“查询”按钮,客户端即可接收到文件查询指令。客户端响应于文件查询指令,将文件查询请求发送给SDK服务端,SDK服务端来自客户端的文件查询请求。其中,文件查询请求携带的参数比如包括业务标识、操作人、导出开始时间、导出结束时间、导出状态等。
S315、SDK服务端获取待查询业务标识对应的目标文件导出记录。
S316、SDK服务端向客户端发送目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
相应地,客户端接收来自SDK服务端的目标文件导出记录。
示例性地,SDK服务端根据文件查询请求,获取待查询业务标识,根据待查询业务标识以及文件查询请求携带的其他参数(比如操作人、导出开始时间等),获取待查询业务标识对应的目标文件导出记录。SDK服务端将文件导出记录发送给客户端,文件导出记录包含目标文件在云存储服务器中的存储地址,客户端接收来自SDK服务端的目标文件导出记录。
示例性地,客户端在接收到来自SDK服务端的目标文件导出记录后,执行S317、显示目标文件导出记录。用户可以通过文件导出记录包含的目标文件在云存储服务器中的存储地址,下载目标文件。
本申请实施例提供的文件管理方法,通过客户端接收文件导出指令,响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;业务服务端通过SDK的接口获取业务服务端的可用内存,确定可用内存大于或等于内存阈值;业务服务端获取在预设时段内接收到客户端发送的文件导出请求的数量,确定文件导出请求的数量小于或等于次数阈值;业务服务端通过SDK的接口对应的回调方法,获取目标文件对应的数据流,根据数据流生成目标文件,业务服务端通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,SDK服务端接收来自业务服务端的文件导出任务对应的文件导出记录,存储文件导出记录;业务服务端向云存储服务器发送目标文件,云存储服务器在接收到目标文件后,存储目标文件,并将目标文件的存储地址发送给业务服务端的SDK的接口,业务服务端接收云存储服务器发送的存储地址;业务服务端根据存储地址更新SDK服务端中的文件导出记录;SDK服务端接收存储地址,根据存储地址更新文件导出记录;客户端响应于文件查询指令,将文件查询请求发送给SDK服务端,SDK服务端获取待查询业务标识对应的目标文件导出记录,向客户端发送目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址,客户端接收并显示来自SDK服务端的目标文件导出记录。由于本申请实施例的业务服务端通过标准SDK的接口确定业务服务端的可用内存大于或等于内存阈值,且客户端在预设时段内发送的文件导出请求的次数小于或等于次数阈值后,将文件导出任务加入异步线程池以异步导出目标文件,导出的目标文件可以为压缩包,因此,能够实现文件导出与业务逻辑的解耦,保证在文件导出过程中,业务服务端的可用性,提升文件导出的效率,进而提升用户体验。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4为本申请一实施例提供的文件管理装置的结构示意图,应用于业务服务端,业务服务端集成有用于文件导出的SDK。如图4所示,本申请实施例的文件管理装置400包括:初始化模块401、导出模块402、发送模块403和处理模块404。其中:
初始化模块401,用于响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,预设参数包括业务标识,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务。
导出模块402,用于通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
发送模块403,用于通过SDK的接口向SDK服务端发送文件导出任务对应的文件导出记录,文件导出记录包括业务标识。
处理模块404,用于根据存储地址更新SDK服务端中的文件导出记录,SDK服务端用于向客户端提供文件查询服务。
在一些实施例中,导出模块402可以具体用于:通过SDK的接口对应的回调方法,获取目标文件对应的数据流;根据数据流生成目标文件;向云存储服务器发送目标文件;接收云存储服务器发送的存储地址。
可选的,导出模块402在用于获取目标文件对应的数据流时,可以具体用于:通过SDK的接口将文件导出任务加入异步线程池;在异步线程池中不存在目标任务时,通过SDK的接口对应的回调方法,获取目标文件对应的数据流,目标任务加入异步线程池的时刻早于将文件导出任务加入异步线程池的时刻。
可选的,发送模块403还可以用于:在异步线程池中存在目标任务时,向客户端发送第一提示信息,第一提示信息用于指示目标文件导出中。
可选的,导出模块402在用于根据数据流生成目标文件时,可以具体用于:若SDK的接口用于生成单个文件,则根据数据流生成目标文件;若SDK的接口用于生成多个文件的压缩包,则根据数据流生成多个待处理文件,对多个待处理文件进行压缩处理,生成目标文件。
在一些实施例中,导出模块402可以具体用于:通过SDK的接口获取业务服务端的可用内存;在确定可用内存大于或等于内存阈值时,通过SDK的接口执行文件导出任务。
可选的,发送模块403还可以用于:在可用内存小于内存阈值时,向客户端发送第二提示信息,第二提示信息用于指示目标文件导出失败。
在一些实施例中,导出模块402可以具体用于:获取在预设时段内接收到客户端发送的文件导出请求的数量;在确定文件导出请求的数量小于或等于次数阈值时,通过SDK的接口执行文件导出任务。
可选的,发送模块403还可以用于:在确定文件导出请求的数量大于次数阈值时,向客户端发送第三提示信息,第三提示信息用于指示用户暂停文件导出。
可选的,导出模块402还可以用于:确定目标文件的有效时间信息,有效时间信息用于指示可通过存储地址下载目标文件的时间;向云存储服务器发送有效时间信息。
本申请实施例的装置,可以用于执行上述任一方法实施例中业务服务端的方案,其实现原理和技术效果类似,此处不再赘述。
图5为本申请另一实施例提供的文件管理装置的结构示意图,应用于SDK服务端,SDK服务端用于向客户端提供文件查询服务。如图5所示,本申请实施例的文件管理装置500包括:接收模块501、存储模块502和更新模块503。其中:
接收模块501,用于接收来自业务服务端的文件导出任务对应的文件导出记录,文件导出记录包括业务标识,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件;以及接收存储地址。
存储模块502,用于存储文件导出记录。
更新模块503,用于根据存储地址更新文件导出记录。
可选的,接收模块501还可以用于:接收来自客户端的文件查询请求,文件查询请求包含待查询业务标识;该文件管理装置还包括获取模块504,用于获取待查询业务标识对应的目标文件导出记录;该文件管理装置还包括发送模块505,用于向客户端发送目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
本申请实施例的装置,可以用于执行上述任一方法实施例中SDK服务端的方案,其实现原理和技术效果类似,此处不再赘述。
图6为本申请又一实施例提供的文件管理装置的结构示意图,应用于客户端。如图6所示,本申请实施例的文件管理装置600包括:接收模块601和发送模块602。其中:
接收模块601,用于接收文件导出指令。
发送模块602,用于响应于文件导出指令,将文件导出请求发送给业务服务端,文件导出请求用于指示业务服务端通过SDK的接口执行文件导出任务,文件导出任务用于指示导出目标文件,并将目标文件存储至云存储服务器,获得目标文件在云存储服务器中的存储地址,存储地址用于下载目标文件。
在一些实施例中,发送模块602还可以用于:响应于文件查询指令,将文件查询请求发送给SDK服务端,文件查询请求包含待查询业务标识;接收模块还用于接收来自SDK服务端的目标文件导出记录,目标文件导出记录包含目标文件在云存储服务器中的存储地址。
可选的,接收模块601还可以用于:接收来自业务服务端的提示信息,提示信息包括第一提示信息、第二提示信息和第三提示信息中的至少一种,第一提示信息用于指示目标文件导出中,第二提示信息用于指示目标文件导出失败,第三提示信息用于指示用户暂停文件导出;显示提示信息。
本申请实施例的装置,可以用于执行上述任一方法实施例中客户端的方案,其实现原理和技术效果类似,此处不再赘述。
图7为本申请一实施例提供的文件管理系统的示意图,如图7所示,文件管理系统700包括客户端701、业务服务端702和SDK服务端703,客户端701分别和业务服务端702、SDK服务端703通信连接,业务服务端702分别和客户端701、SDK服务端703通信连接。客户端701可以采用图6所示装置实施例的结构,其对应地,可以执行图2或图3实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。业务服务端702可以采用图4所示装置实施例的结构,其对应地,可以执行图2或图3实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。SDK服务端703可以采用图5所示装置实施例的结构,其对应地,可以执行图2或3实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,参照图7,本申请实施例的文件管理系统700还包括云存储服务器704,云存储服务器704和业务服务端702通信连接,云存储服务器704用于存储目标文件,将目标文件在云存储服务器704中的存储地址发送给业务服务端702,存储地址用于下载目标文件。
图8为本申请另一实施例提供的文件管理系统的示意图,如图8所示,文件管理系统800包括前端页面801、业务系统802、业务系统802通过Maven坐标引入的SDK803、SDK服务器804、OSS805。其中,前端页面801分别和业务系统802、SDK服务器804通信连接,SDK803分别和SDK服务器804以及OSS805通信连接。具体地,用户通过前端页面801发出文件导出指令,前端页面801接收文件导出指令,响应于文件导出指令,将文件导出请求发送给业务系统802,业务系统802响应于接收到前端页面801发送的文件导出请求,根据预设参数初始化SDK803的接口;业务系统802通过SDK803的接口获取业务系统802的可用内存,确定业务系统802的可用内存大于或等于内存阈值(即图8中的内存过载保护);业务系统802通过SDK803的接口确定客户端在预设时段内发送的文件导出请求的次数小于次数阈值(即图8中的导出频率限制);业务系统802通过SDK803的接口执行文件导出任务,并通过SDK803的接口向SDK服务器804发送文件导出任务对应的文件导出记录,SDK服务器804用于管理文件导出记录,在导出目标文件后,业务系统802通过SDK803的接口将目标文件发送至OSS805(即图8中的文件上传OSS),OSS805将目标文件的存储地址发送给SDK803的接口,SDK803的接口根据存储地址更新SDK服务端中的文件导出记录,前端页面801响应于文件查询指令,将文件查询请求发送给SDK服务器804,SDK服务器804根据业务标识,获取文件导出记录,将文件导出记录发送给前端页面801,前端页面801接收并显示SDK服务器804发送的业务标识对应的文件导出记录。用户可以通过该文件导出记录包含的目标文件的存储地址,下载目标文件。
可以理解,本申请实施例中的前端页面的功能与上述实施例中的客户端的功能类似;本申请实施例中的业务系统的功能与上述实施例中的业务服务端的功能类似;本申请实施例中的业务系统通过Maven坐标引入的SDK的功能与上述实施例中的业务服务端通过Maven坐标引入的SDK的功能类似;本申请实施例中的SDK服务器的功能与上述实施例中的SDK服务端的功能类似;本申请实施例中的OSS的功能与上述实施例中的云存储服务器的功能类似。
图9为本申请一实施例提供的电子设备的结构示意图。示例性地,电子设备可以被提供为一服务器或计算机。参照图9,电子设备900包括处理组件901,其进一步包括一个或多个处理器,以及由存储器902所代表的存储器资源,用于存储可由处理组件901的执行的指令,例如应用程序。存储器902中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件901被配置为执行指令,以执行上述任一方法实施例。
电子设备900还可以包括一个电源组件903被配置为执行电子设备900的电源管理,一个有线或无线网络接口904被配置为将电子设备900连接到网络,和一个输入输出(I/O)接口905。电子设备900可以操作基于存储在存储器902的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上文件管理方法的方案。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上的文件管理方法的方案。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于文件管理装置中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (23)
1.一种文件管理方法,其特征在于,应用于业务服务端,所述业务服务端集成有用于文件导出的软件开发工具包SDK,所述文件管理方法包括:
响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,所述预设参数包括业务标识,所述文件导出请求用于指示所述业务服务端通过SDK的接口执行文件导出任务;
通过所述SDK的接口执行文件导出任务,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件;
通过所述SDK的接口向SDK服务端发送所述文件导出任务对应的文件导出记录,所述文件导出记录包括所述业务标识;
根据所述存储地址更新所述SDK服务端中的文件导出记录,所述SDK服务端用于向所述客户端提供文件查询服务。
2.根据权利要求1所述的文件管理方法,其特征在于,所述通过所述SDK的接口执行文件导出任务,包括:
通过所述SDK的接口对应的回调方法,获取所述目标文件对应的数据流;
根据所述数据流生成所述目标文件;
向所述云存储服务器发送所述目标文件;
接收所述云存储服务器发送的所述存储地址。
3.根据权利要求2所述的文件管理方法,其特征在于,所述获取所述目标文件对应的数据流,包括:
通过所述SDK的接口将所述文件导出任务加入异步线程池;
在所述异步线程池中不存在目标任务时,通过所述SDK的接口对应的回调方法,获取所述目标文件对应的数据流,所述目标任务加入所述异步线程池的时刻早于将所述文件导出任务加入异步线程池的时刻。
4.根据权利要求3所述的文件管理方法,其特征在于,还包括:
在所述异步线程池中存在所述目标任务时,向所述客户端发送第一提示信息,所述第一提示信息用于指示目标文件导出中。
5.根据权利要求2所述的文件管理方法,其特征在于,所述根据所述数据流生成所述目标文件,包括:
若所述SDK的接口用于生成单个文件,则根据所述数据流生成所述目标文件;
若所述SDK的接口用于生成多个文件的压缩包,则根据所述数据流生成多个待处理文件,对所述多个待处理文件进行压缩处理,生成所述目标文件。
6.根据权利要求1至5中任一项所述的文件管理方法,其特征在于,所述通过所述SDK的接口执行文件导出任务,包括:
通过所述SDK的接口获取所述业务服务端的可用内存;
在确定所述可用内存大于或等于内存阈值时,通过所述SDK的接口执行文件导出任务。
7.根据权利要求6所述的文件管理方法,其特征在于,还包括:
在所述可用内存小于所述内存阈值时,向所述客户端发送第二提示信息,所述第二提示信息用于指示目标文件导出失败。
8.根据权利要求1至5中任一项所述的文件管理方法,其特征在于,所述通过所述SDK的接口执行文件导出任务,包括:
获取在预设时段内接收到所述客户端发送的文件导出请求的数量;
在确定所述文件导出请求的数量小于或等于次数阈值时,通过所述SDK的接口执行文件导出任务。
9.根据权利要求8所述的文件管理方法,其特征在于,还包括:
在确定所述文件导出请求的数量大于所述次数阈值时,向所述客户端发送第三提示信息,所述第三提示信息用于指示用户暂停文件导出。
10.根据权利要求1至5中任一项所述的文件管理方法,其特征在于,还包括:
确定所述目标文件的有效时间信息,所述有效时间信息用于指示可通过所述存储地址下载所述目标文件的时间;
向所述云存储服务器发送所述有效时间信息。
11.一种文件管理方法,其特征在于,应用于软件开发工具包SDK服务端,所述SDK服务端用于向客户端提供文件查询服务,所述文件管理方法包括:
接收来自业务服务端的文件导出任务对应的文件导出记录,所述文件导出记录包括业务标识,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件;
存储所述文件导出记录;
接收所述存储地址;
根据所述存储地址更新所述文件导出记录。
12.根据权利要求11所述的文件管理方法,其特征在于,还包括:
接收来自所述客户端的文件查询请求,所述文件查询请求包含待查询业务标识;
获取所述待查询业务标识对应的目标文件导出记录;
向所述客户端发送所述目标文件导出记录,所述目标文件导出记录包含目标文件在所述云存储服务器中的存储地址。
13.一种文件管理方法,其特征在于,应用于客户端,所述文件管理方法包括:
接收文件导出指令;
响应于所述文件导出指令,将文件导出请求发送给业务服务端,所述文件导出请求用于指示所述业务服务端通过软件开发工具包SDK的接口执行文件导出任务,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件。
14.根据权利要求13所述的文件管理方法,其特征在于,还包括:
响应于文件查询指令,将文件查询请求发送给SDK服务端,所述文件查询请求包含待查询业务标识;
接收来自所述SDK服务端的目标文件导出记录,所述目标文件导出记录包含目标文件在所述云存储服务器中的存储地址。
15.根据权利要求13或14所述的文件管理方法,其特征在于,还包括:
接收来自所述业务服务端的提示信息,所述提示信息包括第一提示信息、第二提示信息和第三提示信息中的至少一种,所述第一提示信息用于指示目标文件导出中,所述第二提示信息用于指示目标文件导出失败,所述第三提示信息用于指示用户暂停文件导出;
显示所述提示信息。
16.一种文件管理装置,其特征在于,应用于业务服务端,所述业务服务端集成有用于文件导出的软件开发工具包SDK,所述文件管理装置包括:
初始化模块,用于响应于接收到客户端发送的文件导出请求,根据预设参数初始化SDK的接口,所述预设参数包括业务标识,所述文件导出请求用于指示所述业务服务端通过SDK的接口执行文件导出任务;
导出模块,用于通过所述SDK的接口执行文件导出任务,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件;
发送模块,用于通过所述SDK的接口向SDK服务端发送所述文件导出任务对应的文件导出记录,所述文件导出记录包括所述业务标识;
处理模块,用于根据所述存储地址更新所述SDK服务端中的文件导出记录,所述SDK服务端用于向所述客户端提供文件查询服务。
17.一种文件管理装置,其特征在于,应用于软件开发工具包SDK服务端,所述SDK服务端用于向客户端提供文件查询服务,所述文件管理装置包括:
接收模块,用于接收来自业务服务端的文件导出任务对应的文件导出记录,所述文件导出记录包括业务标识,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件;以及接收所述存储地址;
存储模块,用于存储所述文件导出记录;
更新模块,用于根据所述存储地址更新所述文件导出记录。
18.一种文件管理装置,其特征在于,应用于客户端,所述文件管理装置包括:
接收模块,用于接收文件导出指令;
发送模块,用于响应于所述文件导出指令,将文件导出请求发送给业务服务端,所述文件导出请求用于指示所述业务服务端通过软件开发工具包SDK的接口执行文件导出任务,所述文件导出任务用于指示导出目标文件,并将所述目标文件存储至云存储服务器,获得所述目标文件在所述云存储服务器中的存储地址,所述存储地址用于下载所述目标文件。
19.一种文件管理系统,其特征在于,包括业务服务端、软件开发工具包SDK服务端和客户端;
其中,所述业务服务端用于执行如权利要求1至10中任一项所述的文件管理方法,所述SDK服务端用于执行如权利要求11或12所述的文件管理方法,所述客户端用于执行如权利要求13至15中任一项所述的文件管理方法。
20.根据权利要求19所述的文件管理系统,其特征在于,还包括云存储服务器,所述云存储服务器用于存储目标文件,将所述目标文件在所述云存储服务器中的存储地址发送给所述业务服务端,所述存储地址用于下载所述目标文件。
21.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至10中任一项所述的文件管理方法;
或者,所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求11或12所述的文件管理方法;
或者,所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求13至15中任一项所述的文件管理方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至10中任一项所述的文件管理方法;
或者,所述计算机程序指令被执行时,实现如权利要求11或12所述的文件管理方法;
或者,所述计算机程序指令被执行时,实现如权利要求13至15中任一项所述的文件管理方法。
23.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的文件管理方法;
或者,所述计算机程序被处理器执行时实现如权利要求11或12所述的文件管理方法;
或者,所述计算机程序被处理器执行时实现如权利要求13至15中任一项所述的文件管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111022167.4A CN113656357B (zh) | 2021-09-01 | 2021-09-01 | 文件管理方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111022167.4A CN113656357B (zh) | 2021-09-01 | 2021-09-01 | 文件管理方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656357A true CN113656357A (zh) | 2021-11-16 |
CN113656357B CN113656357B (zh) | 2024-07-16 |
Family
ID=78493426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111022167.4A Active CN113656357B (zh) | 2021-09-01 | 2021-09-01 | 文件管理方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656357B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022303A (zh) * | 2022-05-17 | 2022-09-06 | 政采云有限公司 | 一种文件下载方法、装置、设备及介质 |
CN115150389A (zh) * | 2022-06-23 | 2022-10-04 | 浙江惠瀜网络科技有限公司 | 文件下载处理方法以及装置、电子设备、存储介质 |
CN115499425A (zh) * | 2022-07-25 | 2022-12-20 | 深圳市一页科技有限公司 | 一种云平台文件导出方法 |
CN118363586A (zh) * | 2024-04-16 | 2024-07-19 | 上海数禾信息科技有限公司 | 强实时特征取数方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179209A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 業務プロセスやドキュメントの記録・管理方法 |
US20140337408A1 (en) * | 2013-05-10 | 2014-11-13 | Appsense Limited | Systems, methods and media for minimizing data downloads |
US20160085985A1 (en) * | 2014-09-22 | 2016-03-24 | International Business Machines Corporation | Multi-service cloud storage decision optimization process |
CN107967143A (zh) * | 2017-12-14 | 2018-04-27 | 泰康保险集团股份有限公司 | 获取客户端应用程序源代码的更新指示信息的方法、装置和系统 |
CN110377438A (zh) * | 2019-07-22 | 2019-10-25 | 广州小鹏汽车科技有限公司 | 跨进程通信接口的路由方法、装置和系统 |
-
2021
- 2021-09-01 CN CN202111022167.4A patent/CN113656357B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179209A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 業務プロセスやドキュメントの記録・管理方法 |
US20140337408A1 (en) * | 2013-05-10 | 2014-11-13 | Appsense Limited | Systems, methods and media for minimizing data downloads |
US20160085985A1 (en) * | 2014-09-22 | 2016-03-24 | International Business Machines Corporation | Multi-service cloud storage decision optimization process |
CN107967143A (zh) * | 2017-12-14 | 2018-04-27 | 泰康保险集团股份有限公司 | 获取客户端应用程序源代码的更新指示信息的方法、装置和系统 |
CN110377438A (zh) * | 2019-07-22 | 2019-10-25 | 广州小鹏汽车科技有限公司 | 跨进程通信接口的路由方法、装置和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022303A (zh) * | 2022-05-17 | 2022-09-06 | 政采云有限公司 | 一种文件下载方法、装置、设备及介质 |
CN115150389A (zh) * | 2022-06-23 | 2022-10-04 | 浙江惠瀜网络科技有限公司 | 文件下载处理方法以及装置、电子设备、存储介质 |
CN115150389B (zh) * | 2022-06-23 | 2024-05-17 | 浙江惠瀜网络科技有限公司 | 文件下载处理方法以及装置、电子设备、存储介质 |
CN115499425A (zh) * | 2022-07-25 | 2022-12-20 | 深圳市一页科技有限公司 | 一种云平台文件导出方法 |
CN118363586A (zh) * | 2024-04-16 | 2024-07-19 | 上海数禾信息科技有限公司 | 强实时特征取数方法、装置、计算机设备和存储介质 |
CN118363586B (zh) * | 2024-04-16 | 2024-10-01 | 上海数禾信息科技有限公司 | 强实时特征取数方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113656357B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113656357B (zh) | 文件管理方法、装置、系统及存储介质 | |
US20170318076A1 (en) | Naming of distributed business transactions | |
CN107656968B (zh) | 大批量业务数据导出方法及系统 | |
CN112799925A (zh) | 数据采集方法、装置、电子设备和可读存储介质 | |
CN108234551B (zh) | 一种数据处理方法及装置 | |
CN114070755B (zh) | 虚拟机网络流量确定方法、装置、电子设备和存储介质 | |
CN114257551A (zh) | 一种分布式限流的方法及系统、存储介质 | |
CN111666145A (zh) | 消息队列的消息处理方法、系统和计算机设备 | |
CN111901386A (zh) | 一种远端文件处理的方法、系统、设备及可读存储介质 | |
CN115390991A (zh) | 虚拟机的导入导出方法、装置、设备及存储介质 | |
CN113296987B (zh) | 调用模块的接口调用方法、装置、计算机设备及存储介质 | |
CN113220481B (zh) | 请求处理及反馈方法、装置、计算机设备及可读存储介质 | |
CN113055493B (zh) | 数据包处理方法、装置、系统、调度设备和存储介质 | |
CN116361106B (zh) | 一种日志处理方法、装置、电子设备及存储介质 | |
CN111475272A (zh) | 控制Java Web应用定时任务的方法、装置及任务调度平台 | |
CN113645260A (zh) | 业务重试方法、装置、存储介质及电子设备 | |
CN114048059A (zh) | 接口的超时时间调整方法、装置、计算机设备及存储介质 | |
CN112000503B (zh) | 一种服务器故障调试的方法、系统及远端服务器 | |
CN111651338B (zh) | 日志格式化时间的获取系统及其方法 | |
CN114327404A (zh) | 一种文件处理方法、装置、电子设备及计算机可读介质 | |
CN113656378A (zh) | 一种服务器管理方法、装置、介质 | |
CN113505036A (zh) | 一种应用监控方法、客户端和服务器 | |
CN108287752B (zh) | 面向终端的任务调度方法及系统、存储介质、电子设备 | |
CN112311593A (zh) | 一种基于云平台的webhook通知方法、装置、设备及存储介质 | |
CN113507464B (zh) | 基于虚拟设备的数据访问方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |