CN115391293B - 文件获取方法、装置、服务器及存储介质 - Google Patents

文件获取方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN115391293B
CN115391293B CN202210987593.XA CN202210987593A CN115391293B CN 115391293 B CN115391293 B CN 115391293B CN 202210987593 A CN202210987593 A CN 202210987593A CN 115391293 B CN115391293 B CN 115391293B
Authority
CN
China
Prior art keywords
file
target
identification
target file
stored
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.)
Active
Application number
CN202210987593.XA
Other languages
English (en)
Other versions
CN115391293A (zh
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.)
Kunlun Digital Technology Co ltd
China National Petroleum Corp
Original Assignee
Kunlun Digital Technology Co ltd
China National Petroleum Corp
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 Kunlun Digital Technology Co ltd, China National Petroleum Corp filed Critical Kunlun Digital Technology Co ltd
Priority to CN202210987593.XA priority Critical patent/CN115391293B/zh
Publication of CN115391293A publication Critical patent/CN115391293A/zh
Application granted granted Critical
Publication of CN115391293B publication Critical patent/CN115391293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种文件获取方法、装置、服务器及存储介质,属于计算机技术领域。该方法在获取文件时,先基于该文件的文件标识查询第一标识列表,在第一标识列表中存储该文件标识的情况下,基于该文件标识,查询缓存,在缓存中存储该文件的文件元数据的情况下,直接从缓存存储的该文件的文件元数据中获取该文件的存储路径,然后基于该存储路径,从分布式文件系统的存储服务器中获取该文件。可见,该方法可以直接从缓存中获取存储路径,无需查询数据库,减少了与数据库建立连接的次数,缩短了文件的获取时间,从而提高了文件的获取效率。

Description

文件获取方法、装置、服务器及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种文件获取方法、装置、服务器及存储介质。
背景技术
随着互联网技术的发展,文件类型越来越多,文件的量也越来越大。目前,为了缓解存储压力,主要采用分布式文件系统进行文件存储,后续再从分布式文件系统中获取需要的文件。示例性地,分布式文件系统包括存储服务器,该存储服务器具体负责进行文件存储,而存储的文件类型包括但不限于文档类型、图片类型、音频类型、视频类型等。
相关技术中,在利用分布式文件系统存储文件时,目标服务器会同步将该文件的存储路径存储在独立于分布式文件系统的数据库中。这样,在获取文件过程中,目标服务器先查询数据库以获取相关文件的存储路径,之后再基于获取到的存储路径,从分布式文件系统的存储服务器中获取相关文件。
然而,每次查询数据库时,都需要目标服务器与数据库建立连接,因此,当频繁获取文件时,会使得目标服务器频繁与数据库建立连接,而每次建立连接都需要耗费一定时间,导致文件获取的时间较长,文件获取的效率低。
发明内容
本申请实施例提供了一种文件获取方法、装置、服务器及存储介质,可以提高文件获取的效率。具体技术方案如下:
一方面,本申请实施例提供了一种文件获取方法,所述方法包括:
响应于终端发送的文件获取请求,基于所述文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识;
基于所述目标文件的文件标识,查询第一标识列表;其中,所述第一标识列表用于存储有效文件标识;
在所述第一标识列表中存储有所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,在缓存中查询所述目标文件的文件元数据;其中,所述缓存用于保存部分已存储文件的文件元数据,所述文件元数据包括文件标识和存储路径;
在所述缓存中存储有所述目标文件的文件元数据的情况下,从所述目标文件的文件元数据中获取所述目标文件的存储路径;
在所述缓存中未存储所述目标文件的文件元数据的情况下,基于所述目标文件的文件标识,查询数据库,从所述数据库存储的所述目标文件的文件元数据中获取所述目标文件的存储路径;其中,所述数据库用于保存全量已存储文件的文件元数据;
基于所述目标文件的存储路径,从分布式文件系统的存储服务器中获取所述目标文件。
在一种可能的实现方式中,所述方法还包括:
在所述第一标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,查询第二标识列表;其中,所述第二标识列表用于存储无效文件标识;
在所述第二标识列表中存储有所述目标文件的文件标识的情况下,过滤所述第一查询条件,且向所述终端发送第一提示消息,所述第一提示消息用于提示所述第一查询条件为无效查询条件。
在另一种可能的实现方式中,所述方法还包括:
在所述第二标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,依次查询所述缓存和所述数据库;
在所述缓存和所述数据库中均未存储所述目标文件的文件标识的情况下,将所述目标文件的文件标识添加至所述第二标识列表。
在另一种可能的实现方式中,所述方法还包括:
在从所述数据库中获取所述目标文件的存储路径的情况下,将所述目标文件的文件元数据存储至所述缓存。
在另一种可能的实现方式中,所述方法还包括:
响应于所述终端发送的文件上传请求,基于所述文件上传请求中的目标文件,向所述存储服务器中存储所述目标文件;
在将所述目标文件成功存储至所述存储服务器的情况下,生成所述目标文件的文件元数据,向所述数据库中存储所述目标文件的文件元数据;
在将所述目标文件的文件元数据成功存储至所述数据库的情况下,向所述缓存中存储所述目标文件的文件元数据;
在将所述目标文件的文件元数据成功存储至所述缓存的情况下,将所述目标文件的文件标识存储至所述第一标识列表。
在另一种可能的实现方式中,所述目标文件的文件元数据还包括:文件名称、文件类型以及业务类型;
所述生成所述目标文件的文件元数据,包括:
获取所述目标文件在所述存储服务器中的存储路径;
获取所述目标文件成功存储至所述存储服务器时的时间戳,基于所述时间戳,生成所述目标文件的文件标识;
确定所述目标文件的文件名称、文件类型以及所述目标文件所属的业务类型;
其中,所述目标文件的文件元数据由所述存储路径、所述文件标识、所述文件名称、所述文件类型以及所述业务类型组成。
在另一种可能的实现方式中,所述向所述缓存中存储所述目标文件的文件元数据,包括:
对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值;
将所述键值作为值,将所述文件标识作为键,以键-值的形式存储至所述缓存。
在另一种可能的实现方式中,所述对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值,包括:
对所述存储路径、所述文件名称和所述业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;
对所述加密后的存储路径、所述加密后的文件名称、所述加密后的业务类型以及所述文件类型进行拼接,得到所述键值。
在另一种可能的实现方式中,所述方法还包括:
在所述目标文件的文件标识未成功存储至所述第一标识列表的情况下,将所述目标文件的文件标识添加至定时任务表中;其中,所述定时任务表用于定时向所述第一标识列表中添加文件标识;
在达到扫描时间时,对所述定时任务表进行扫描;
在扫描到所述目标文件的文件标识的情况下,重新向所述第一标识列表中添加所述目标文件的文件标识。
另一方面,本申请实施例提供了一种文件获取装置,所述装置包括:
第一确定模块,用于响应于终端发送的文件获取请求,基于所述文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识;
第一查询模块,用于基于所述目标文件的文件标识,查询第一标识列表;其中,所述第一标识列表用于存储有效文件标识;
第二查询模块,用于在所述第一标识列表中存储有所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,在缓存中查询所述目标文件的文件元数据;其中,所述缓存用于保存部分已存储文件的文件元数据,所述文件元数据包括文件标识和存储路径;
第一获取模块,用于在所述缓存中存储有所述目标文件的文件元数据的情况下,从所述目标文件的文件元数据中获取所述目标文件的存储路径;
第三查询模块,用于在所述缓存中未存储所述目标文件的文件元数据的情况下,基于所述目标文件的文件标识,查询数据库,从所述数据库存储的所述目标文件的文件元数据中获取所述目标文件的存储路径;其中,所述数据库用于保存全量已存储文件的文件元数据;
第二获取模块,用于基于所述目标文件的存储路径,从分布式文件系统的存储服务器中获取所述目标文件。
在一种可能的实现方式中,所述装置还包括:
第四查询模块,用于在所述第一标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,查询第二标识列表;其中,所述第二标识列表用于存储无效文件标识;
过滤模块,用于在所述第二标识列表中存储有所述目标文件的文件标识的情况下,过滤所述第一查询条件,且向所述终端发送第一提示消息,所述第一提示消息用于提示所述第一查询条件为无效查询条件。
在另一种可能的实现方式中,所述装置还包括:
第五查询模块,用于在所述第二标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,依次查询所述缓存和所述数据库;
第一添加模块,用于在所述缓存和所述数据库中均未存储所述目标文件的文件标识的情况下,将所述目标文件的文件标识添加至所述第二标识列表。
在另一种可能的实现方式中,所述装置还包括:
第一存储模块,用于在从所述数据库中获取所述目标文件的存储路径的情况下,将所述目标文件的文件元数据存储至所述缓存。
在另一种可能的实现方式中,所述装置还包括:
第二存储模块,用于响应于所述终端发送的文件上传请求,基于所述文件上传请求中的目标文件,向所述存储服务器中存储所述目标文件;
生成模块,用于在将所述目标文件成功存储至所述存储服务器的情况下,生成所述目标文件的文件元数据,向所述数据库中存储所述目标文件的文件元数据;
第三存储模块,用于在将所述目标文件的文件元数据成功存储至所述数据库的情况下,向所述缓存中存储所述目标文件的文件元数据;
第四存储模块,用于在将所述目标文件的文件元数据成功存储至所述缓存的情况下,将所述目标文件的文件标识存储至所述第一标识列表。
在另一种可能的实现方式中,所述目标文件的文件元数据还包括:文件名称、文件类型以及业务类型;
所述生成模块,用于获取所述目标文件在所述存储服务器中的存储路径;获取所述目标文件成功存储至所述存储服务器时的时间戳,基于所述时间戳,生成所述目标文件的文件标识;确定所述目标文件的文件名称、文件类型以及所述目标文件所属的业务类型;
其中,所述目标文件的文件元数据由所述存储路径、所述文件标识、所述文件名称、所述文件类型以及所述业务类型组成。
在另一种可能的实现方式中,所述第三存储模块,用于对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值;将所述键值作为值,将所述文件标识作为键,以键-值的形式存储至所述缓存。
在另一种可能的实现方式中,所述第三存储模块,用于对所述存储路径、所述文件名称和所述业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;对所述加密后的存储路径、所述加密后的文件名称、所述加密后的业务类型以及所述文件类型进行拼接,得到所述键值。
在另一种可能的实现方式中,所述装置还包括:
第二添加模块,用于在所述目标文件的文件标识未成功存储至所述第一标识列表的情况下,将所述目标文件的文件标识添加至定时任务表中;其中,所述定时任务表用于定时向所述第一标识列表中添加文件标识;
扫描模块,用于在达到扫描时间时,对所述定时任务表进行扫描;
第三添加模块,用于在扫描到所述目标文件的文件标识的情况下,重新向所述第一标识列表中添加所述目标文件的文件标识。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一项所述的文件获取方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一项所述的文件获取方法。
另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一项所述的文件获取方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供了一种文件获取方法,该方法在获取文件时,先基于该文件的文件标识查询第一标识列表,在第一标识列表中存储该文件标识的情况下,基于该文件标识,查询缓存,在缓存中存储该文件的文件元数据的情况下,直接从缓存存储的该文件的文件元数据中获取该文件的存储路径,然后基于该存储路径,从分布式文件系统的存储服务器中获取该文件。可见,该方法可以直接从缓存中获取存储路径,无需查询数据库,减少了与数据库建立连接的次数,缩短了文件的获取时间,从而提高了文件的获取效率。
附图说明
图1是本申请实施例提供的一种文件获取方法的实施环境的示意图;
图2是本申请实施例提供的一种文件获取方法的流程图;
图3是本申请实施例提供的一种获取文件的架构示意图;
图4是本申请实施例提供的一种获取文件的流程图;
图5是本申请实施例提供的一种文件上传方法的流程图;
图6是本申请实施例提供的一种上传文件的流程图;
图7是本申请实施例提供的一种文件获取装置的结构示意图;
图8是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为使本申请的技术方案和优点更加清楚,下面对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的请求、文件、文件元数据等都是在充分授权的情况下获取的。
图1是本申请实施例提供的一种文件获取方法的实施环境的示意图。参见图1,该实施环境包括:服务器101,为了便于与分布式文件系统中的存储服务器104进行区分,在本申请实施例中,将该服务器101称为目标服务器101。
该实施环境还包括:终端102、数据库103和存储服务器104。其中,终端102与目标服务器101通过无线或有线网络连接,目标服务器101与数据库103通过无线或有线网络连接,目标服务器101与存储服务器104通过无线或有线网络连接,对此不作具体限定。
在一种可能的实现方式中,终端102上安装有浏览器,用户可以在该终端102的浏览器中输入目标网址信息,该终端102的浏览器基于该目标网址信息,跳转到文件功能界面。该文件功能界面上显示文件上传选项,当终端102检测到文件上传选项被触发时,可以获取上传的文件,然后向目标服务器101发送该文件。目标服务器101可以将该文件存储至分布式文件系统的存储服务器104中,将该文件的存储路径存储至缓存和数据库103中。其中,目标服务器101为该目标网址信息对应的网站服务器。
该文件功能界面上还显示文件查询选项,当终端102检测到文件查询选项被触发时,可以向目标服务器101发送文件获取请求。目标服务器101基于该文件获取请求,查询缓存或数据库103,从缓存或数据库103中获取该文件的存储路径后,基于该存储路径,从存储服务器104中获取该文件,然后向终端102发送该文件。
在另一种可能的实现方式中,终端102上安装有目标应用程序,响应于终端102登录该目标应用程序,终端102显示文件功能界面。该文件功能界面上显示文件上传选项和文件查询选项,响应于文件上传选项被触发的触发操作,终端102获取上传的文件,然后向目标服务器101发送该文件。目标服务器101将该文件存储至存储服务器104,将该文件的存储路径存储至缓存和数据库103中。其中,目标服务器101为目标应用程序对应的服务器。
响应于文件查询选项被触发的触发操作,终端102向目标服务器101发送文件获取请求。目标服务器101通过查询缓存或数据库103,获取该文件的存储路径,基于该存储路径,从存储服务器104中获取该文件,然后向终端102发送该文件。
其中,终端102为手机、平板电脑、PC(Personal Computer)设备、智能语音交互设备和车载终端等设备中的至少一种。目标服务器101为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种,数据库103为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种,存储服务器104为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种。
图2是本申请实施例提供的一种文件获取方法的流程图,由目标服务器执行,参见图2,该方法包括:
步骤201:响应于终端发送的文件获取请求,目标服务器基于该文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识。
在本申请实施例中,终端可以通过以下任一实现方式向目标服务器发送文件获取请求。
第一种实现方式,终端上安装有浏览器,用户可以在该浏览器中输入目标网址信息,终端的浏览器基于该目标网址信息,从当前界面跳转到文件功能界面。该文件功能界面包括文件查询选项,用户通过触发该文件查询选项可以输入第一查询条件。相应的,当终端检测到文件查询选项被触发时,向目标服务器发送文件获取请求,该文件获取请求中携带第一查询条件。其中,该当前界面可以为任一界面,例如,当前界面为搜索界面。
第二种实现方式,终端上安装有目标应用程序,终端登录该目标应用程序,显示文件功能界面。终端检测到文件功能界面上的文件查询选项被触发时,向目标服务器发送文件获取请求,该文件获取请求中携带第一查询条件。
在本申请实施例中,仅以终端通过第一种实现方式向目标服务器发送文件获取请求为例进行说明。
需要说明的一点是,终端可以直接向目标服务器发送文件获取请求,也可以通过代理服务器向目标服务器转发该文件获取请求,对此不作具体限定。参见图3,图3中仅以终端通过代理服务器向目标服务器转发文件获取请求为例进行说明。
在本申请实施例中,目标服务器基于第一查询条件,确定目标文件的文件标识的过程可以为:目标服务器从第一查询条件中获取查询字段,基于预先存储的查询字段与文件标识的对应关系,确定该查询字段对应的文件标识,从而得到待查询的目标文件的文件标识,该文件标识用于唯一目标文件。
本步骤中,第一查询条件中可以包括一个查询字段,也可以包括多个查询字段。其中,一个查询字段对应一个文件标识,但一个文件标识可以对应一个或多个查询字段。
若第一查询条件中包括一个查询字段,则目标服务器直接基于该查询字段与文件标识的对应关系,确定该查询字段对应的文件标识。
若第一查询条件包括多个查询字段,则对于每个查询字段,目标服务器可以基于该查询字段与文件标识的对应关系,确定该查询字段对应的文件标识。由于多个查询字段对应的文件标识中可能存在相同的文件标识,因此,目标服务器基于多个查询字段,最终得到一个或多个文件标识。
若目标服务器得到一个文件标识,则直接执行步骤202-206,若目标服务器得到多个文件标识,则对于每个文件标识,执行步骤202-206,最终得到多个目标文件。由此可见,目标文件可以为一个也可以为多个。另外,目标文件可以为任一文件,对此不作具体限定。例如,目标文件为与某一学习主题相关的视频,或者目标文件为与某一活动主题相关的文档。
步骤202:目标服务器基于目标文件的文件标识,查询第一标识列表。
第一标识列表用于存储有效文件标识,该有效文件标识是指数据库中存储的文件标识。
本步骤中,目标服务器可以基于目标文件的文件标识,调用布隆过滤器查询第一标识列表中是否存储该目标文件的文件标识。
在一种可能的实现方式中,第一标识列表中存储有该目标文件的文件标识。这种情况下,目标服务器执行步骤203。
在另一种可能的实现方式中,第一标识列表中未存储有该目标文件的文件标识。这种情况下,目标服务器基于该目标文件的文件标识,查询第二标识列表;第二标识列表用于存储无效文件标识,该无效文件标识为数据库中未存储的文件标识。
该实现方式中,目标服务器调用布隆过滤器查询第二标识列表,在第二标识列表中存储有目标文件的文件标识的情况下,说明该目标文件的文件标识为无效文件标识,这时,目标服务器就无需继续查询。相应的,目标服务器过滤第一查询条件,向终端发送第一提示消息,该第一提示消息用于提示第一查询条件为无效查询条件。
在第二标识列表中未存储有目标文件的文件标识的情况下,目标服务器基于目标文件的文件标识,依次查询缓存和数据库,在缓存中存储有目标文件的文件标识的情况下,从缓存中该文件标识对应的文件元数据中获取目标文件的存储路径。在缓存中未存储有目标文件的文件标识的情况下,基于目标文件的文件标识,查询数据库。在数据库中存储有目标文件的文件标识的情况下,从数据库中该文件标识对应的文件元数据中获取目标文件的存储路径,参见图4。在数据库中未存储有目标文件的文件标识的情况下,说明该文件标识为无效文件标识,将该文件标识添加至第二标识列表。当下次再基于该文件标识进行查询时,可以直接过滤掉,避免不必要的查询,从而节省资源。
在本申请实施例中,基于第一标识列表和第二标识列表可以对待查询文件的文件标识进行判断和拦截,对于无效文件标识可以直接拦截掉,无需继续查询,防止缓存穿透。对于有效文件标识可以先进行缓存查询,如果缓存中没有,再去查询数据库,减少目标服务器与数据库的连接次数,降低数据库的I/O(Input/Output;输入/输出),从而提高文件的获取效率。
其中,第一标识列表和第二标识列表中的文件标识是预先存储的,下面将详细介绍,这里暂不赘述。
步骤203:在第一标识列表中存储有目标文件的文件标识的情况下,目标服务器基于目标文件的文件标识,在缓存中查询目标文件的文件元数据。
缓存用于保存部分已存储文件的文件元数据,文件元数据包括文件标识和存储路径。
在本申请实施例中,除文件标识和存储路径外,文件元数据还包括:文件名称、文件类型以及业务类型。其中,文件名称、文件类型、业务类型和存储路径作为值,文件标识作为键,以键-值的形式存储在缓存中。基于此,目标服务器可以在缓存中查询目标文件的文件标识。
需要说明的一点是,缓存中的文件元数据是预先存储的,下面将详细介绍,这里暂不赘述。另外,该缓存可以为目标服务器的本地缓存,也可以为redis缓存,该redis缓存作为中间件存在。本申请实施例中,仅以该缓存为redis缓存为例进行说明。
步骤204:在缓存中存储有目标文件的文件元数据的情况下,目标服务器从目标文件的文件元数据中获取目标文件的存储路径。
在一种可能的实现方式中,在缓存中存储有目标文件的文件标识的情况下,目标服务器确定缓存中存储的该文件标识对应的存储路径,从而得到目标文件的存储路径,然后执行步骤206。
需要说明的一点是,缓存中存储的是热点文件的文件元数据,该热点文件可以为预设时间段内使用频率大于预设频率的文件,也可以为存储时长小于预设存储时长的文件,或者其他文件,对此不作具体限定。这里仅以热点文件为预设时间段内使用频率大于预设频率的文件为例进行说明。当文件的使用频率小于预设频率时,说明这段时间内该文件的使用较低,这种情况下可以删除缓存中的该文件,避免占用过多空间,提高空间利用率。
另外,在缓存中该文件标识对应的存储路径为加密后的存储路径的情况下,目标服务器对加密后的存储路径进行解密,得到目标文件的存储路径。
在另一种可能的实现方式中,在缓存中未存储目标文件的文件标识的情况下,目标服务器执行步骤205。
继续参见图3,目标服务器在第一标识列表中查询到目标文件的文件标识的情况下,查询缓存,在缓存中存储有目标文件的文件元数据的情况下,从缓存中获取目标文件的存储路径,然后从分布式文件系统的存储服务器中获取目标文件。在缓存中未存储目标文件的文件元数据的情况下,从数据库中获取目标文件的存储路径,然后从存储服务器中获取目标文件。
步骤205:在缓存中未存储目标文件的文件元数据的情况下,目标服务器基于目标文件的文件标识,查询数据库,从数据库存储的目标文件的文件元数据中获取目标文件的存储路径。
在缓存中未存储目标文件的文件标识的情况下,目标服务器基于目标文件的文件标识,查询数据库,确定数据库中是否存储目标文件的文件标识。
在一种可能的实现方式中,在数据库中存储目标文件的文件标识的情况下,目标服务器从数据库中获取目标文件的文件标识对应的存储路径,从而得到目标文件的存储路径,然后执行步骤206。
若目标文件的存储路径是从数据库中获取的,说明缓存中未存储目标文件的文件元数据,这种情况下,目标服务器从数据库中获取目标文件的存储路径后,将目标文件的文件元数据存储至缓存,这样下次再查询目标文件时,可以直接从缓存中获取目标文件的存储路径,无需再查询数据库,减少与数据库的连接次数,从而提高文件的获取效率,继续参见图4。
在另一种可能的实现方式中,在数据库中未存储目标文件的文件标识的情况下,目标服务器向终端发送第二提示消息,用于提示未查询到目标文件。终端接收第二提示消息,在文件功能界面上显示第二提示消息。
该实现方式中,终端显示第二提示消息的方式可以根据需要进行设置并更改,对此不作具体限定。例如,终端以弹框的方式显示第二提示消息。
需要说明的一点是,数据库中的文件元数据是预先存储的,下面将详细介绍,这里暂不赘述。另外,该数据库可以为oracle数据库,也可以为其他数据库,对此不作具体限定。
步骤206:目标服务器基于目标文件的存储路径,从分布式文件系统的存储服务器中获取目标文件。
目标服务器从缓存或数据库中获取目标文件的存储路径后,基于目标文件的存储路径,从分布式文件系统的存储服务器中获取目标文件,然后向终端返回目标文件。
其中,该分布式文件系统可以为FastDFS系统,也可以为其他系统,对此不作具体限定。
本申请实施例提供了一种文件获取方法,该方法在获取文件时,先基于该文件的文件标识查询第一标识列表,在第一标识列表中存储该文件标识的情况下,基于该文件标识,查询缓存,在缓存中存储该文件的文件元数据的情况下,直接从缓存存储的该文件的文件元数据中获取该文件的存储路径,然后基于该存储路径,从分布式文件系统的存储服务器中获取该文件。可见,该方法可以直接从缓存中获取存储路径,无需查询数据库,减少了与数据库建立连接的次数,缩短了文件的获取时间,从而提高了文件的获取效率。
在本申请实施例中,利用分布式文件系统实现海量文件的分布式存储,利用redis缓存实现分布式缓存的高性能查询,通过布隆过滤器对文件标识进行判断和拦截,无效文件标识对应的文件获取请求会直接返回,以减少目标服务器与数据库的连接次数,从而提高文件获取效率。并且,redis缓存中存储的是热点数据,具有良好的缓存命中率,有效减少目标服务器与数据库的连接次数,从而进一步提高文件获取效率。由此可见,该方法可以提高高频率访问文件的访问效率,解决每一次缓存穿透带来的额外数据库访问,通过加密文件元数据对文件进行加密保护,克服海量文件存取时,大规模高并发访问时产生的I/O性能瓶颈。
图5是本申请实施例提供的一种文件上传方法的流程图,由目标服务器执行,参见图5,该方法包括:
步骤501:响应于终端发送的文件上传请求,目标服务器基于文件上传请求中的目标文件,向存储服务器中存储目标文件。
文件功能界面上显示文件上传选项,用户通过触发该文件上传选项可以上传目标文件。相应的,当终端检测到文件上传选项被触发时,向目标服务器发送文件上传请求,该文件上传请求中携带目标文件。
需要说明的一点是,若步骤201中终端通过第一种实现方式向目标服务器发送文件获取请求,相应的,本步骤中,终端检测到浏览器上显示的文件上传选项被触发时,向目标服务器发送文件上传请求。若步骤201中终端通过第二种实现方式向目标服务器发送文件上传请求,相应的,本步骤中,终端检测到目标应用程序上显示的文件上传选项被触发时,向目标服务器发送文件上传请求。
本步骤中,目标服务器向存储服务器中存储目标文件的过程可以为:目标服务器向存储服务器发送第一文件存储指令,该第一文件存储指令中携带目标文件。存储服务器接收第一文件存储指令,从第一文件存储指令中获取目标文件,然后存储该目标文件。
存储服务器成功存储目标文件后,向目标服务器返回第一通知消息,目标服务器接收该第一通知消息,确定目标文件成功存储至存储服务器。
步骤502:在将目标文件成功存储至存储服务器的情况下,目标服务器生成目标文件的文件元数据,向数据库中存储目标文件的文件元数据。
文件元数据由文件名称、文件类型、业务类型、存储路径以及文件标识组成。
对于文件名称和存储路径,存储服务器成功存储目标文件后,确定该目标文件的文件名称和存储路径,在第一通知消息中携带该目标文件的文件名称和存储路径。目标服务器接收第一通知消息后,从第一通知消息中获取目标文件的存储路径和文件名称。
对于文件类型和业务类型,目标服务器可以在向存储服务器中存储目标文件之前或之后,确定目标文件的文件类型和业务类型。其中,该文件类型可以为文档类型、图片类型、音频类型、视频类型等,对此不作具体限定。该业务类型可以为学习类型、生活类型、报表类型等,对此不作具体限定。
对于文件标识,目标服务器可以确定接收到第一通知消息的时间戳,将该时间戳作为目标文件成功存储至存储服务器时的时间戳,基于该时间戳,生成目标文件的文件标识。
目标服务器得到文件名称、文件类型、业务类型、存储路径以及文件标识后,将文件名称、文件类型、业务类型、存储路径以及文件标识组成文件元数据,然后向数据库中存储目标文件的文件元数据。
在本申请实施例中,目标服务器可以以键值的形式向数据库中存储文件元数据。该过程可以为:目标服务器对目标文件的存储路径、文件名称、文件类型以及业务类型进行拼接,得到键值,将该键值作为值,将目标文件的文件标识作为键,以键-值的形式存储至数据库。
该实现方式中,目标服务器在将文件元数据存储至数据库中之前,可以对文件元数据进行加密。其中,目标服务器可以对文件元数据中的文件名称、文件类型、业务类型、存储路径以及文件标识均进行加密,也可以仅对文件元数据中的文件名称、业务类型以及存储路径进行加密。在本申请实施例中,仅以目标服务器仅对文件元数据中的文件名称、业务类型以及存储路径进行加密为例进行说明。
目标服务器对存储路径、文件名称和业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;对加密后的存储路径、加密后的文件名称、加密后的业务类型以及文件类型进行拼接,得到键值,将目标文件的文件标识作为键,向数据库发送第二文件存储指令,该第二文件存储指令中以键-值的形式携带文件元数据,用于指示数据库以键值的形式存储文件元数据。数据库接收第二文件存储指令,以键-值的形式存储文件元数据。在成功存储文件元数据后,向目标服务器发送第二通知消息,目标服务器接收到第二通知消息,确定文件元数据成功存储至数据库。
在本申请实施例中,目标服务器可以通过任一加密算法对文件名称、存储路径以及业务类型进行加密,例如,该加密算法为base64加密算法。
需要说明的一点是,在目标文件未成功存储至存储服务器或目标文件的文件元数据未成功存储至数据库的情况下,目标服务器向终端发送第三提示消息,该第三提示消息用于提示数据库存储失败。这种情况下,目标服务器可以通过终端重新获取目标文件,然后重新存储。
步骤503:在将目标文件的文件元数据成功存储至数据库的情况下,目标服务器向缓存中存储目标文件的文件元数据。
目标服务器也是以键-值的形式向缓存中存储目标文件的文件元数据,该过程与目标服务器向数据库中存储文件元数据的过程同理,这里不再赘述。
在目标文件未成功存储至缓存的情况下,目标服务器向存储服务器发送第一文件删除指令,向数据库发送第二文件删除指令,第一文件删除指令用于指示存储服务器删除目标文件,第二文件删除指令用于指示数据库删除目标文件的文件元数据。并且,目标服务器还可以向终端发送第四提示消息,该第四提示消息用于提示缓存存储失败。这种情况下,目标服务器可以通过终端重新获取目标文件,然后重新存储。
在将目标文件的文件元数据成功存储至缓存的情况下,目标服务器执行步骤504。
步骤504:在将目标文件的文件元数据成功存储至缓存的情况下,目标服务器将目标文件的文件标识存储至第一标识列表。
目标服务器从目标文件的文件元数据中获取目标文件的文件标识,将目标文件的文件标识存储至第一标识列表。
在将目标文件的文件标识成功存储至第一标识列表的情况下,目标服务器向终端发送第五提示消息,该第五提示消息用于提示文件标识存储成功。
在目标文件的文件标识未成功存储至第一标识列表的情况下,目标服务器将目标文件的文件标识添加至定时任务表中;在达到扫描时间时,对定时任务表进行扫描;在扫描到目标文件的文件标识的情况下,重新向第一标识列表中添加目标文件的文件标识。
该实现方式中,定时任务表用于定时向第一标识列表中添加文件标识,目标服务器可以周期性对定时任务表进行扫描,将每次扫描到的文件标识添加至第一标识列表中。
在本申请实施例中,上传文件时,先向分布式文件系统中存储文件,在成功将文件存储至分布式文件系统的情况下,再向数据库中存储该文件的文件元数据。在成功将该文件的文件元数据存储至数据库的情况下,再向缓存中存储该文件的文件元数据。在成功将该文件的文件元数据存储至缓存的情况下,再向第一标识列表中存储该文件的文件标识。在成功将该文件的文件标识存储至第一标识列表时,说明整个文件上传过程完成,参见图6。
需要说明的一点是,步骤503-504仅以目标服务器先向缓存中存储文件元数据,再向第一标识列表中存储文件标识为例进行说明。在本申请实施例中,在目标文件的文件元数据成功存储至数据库的情况下,目标服务器也可以先向第一标识列表中存储目标文件的文件标识。在将目标文件的文件标识成功存储至第一标识列表的情况下,再向缓存中存储目标文件的文件元数据。
另外,步骤501-504是上传目标文件的过程,只需执行一次即可,后续查询目标文件时,直接执行步骤201-206即可。
在本申请实施例中,目标服务器依次向存储服务器、数据库、缓存和第一标识列表中存储目标文件、目标文件的文件元数据以及目标文件的文件标识,在获取目标文件时,基于第一标识列表、缓存、数据库依次进行查询,最终从存储服务器中获取目标文件,在缓存中存储有目标文件的文件元数据的情况下,无需查询数据库,减少了目标服务器与数据库的连接次数,从而提高了文件的获取效率。
图7是本申请实施例提供的一种文件获取装置的流程图,参见图7,该装置包括:
第一确定模块701,用于响应于终端发送的文件获取请求,基于文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识;
第一查询模块702,用于基于目标文件的文件标识,查询第一标识列表;其中,第一标识列表用于存储有效文件标识;
第二查询模块703,用于在第一标识列表中存储有目标文件的文件标识的情况下,基于目标文件的文件标识,在缓存中查询目标文件的文件元数据;其中,缓存用于保存部分已存储文件的文件元数据,文件元数据包括文件标识和存储路径;
第一获取模块704,用于在缓存中存储有目标文件的文件元数据的情况下,从目标文件的文件元数据中获取目标文件的存储路径;
第三查询模块705,用于在缓存中未存储目标文件的文件元数据的情况下,基于目标文件的文件标识,查询数据库,从数据库存储的目标文件的文件元数据中获取目标文件的存储路径;其中,数据库用于保存全量已存储文件的文件元数据;
第二获取模块706,用于基于目标文件的存储路径,从分布式文件系统的存储服务器中获取目标文件。
在一种可能的实现方式中,装置还包括:
第四查询模块,用于在第一标识列表中未存储目标文件的文件标识的情况下,基于目标文件的文件标识,查询第二标识列表;其中,第二标识列表用于存储无效文件标识;
过滤模块,用于在第二标识列表中存储有目标文件的文件标识的情况下,过滤第一查询条件,且向终端发送第一提示消息,第一提示消息用于提示第一查询条件为无效查询条件。
在另一种可能的实现方式中,装置还包括:
第五查询模块,用于在第二标识列表中未存储目标文件的文件标识的情况下,基于目标文件的文件标识,依次查询缓存和数据库;
第一添加模块,用于在缓存和数据库中均未存储目标文件的文件标识的情况下,将目标文件的文件标识添加至第二标识列表。
在另一种可能的实现方式中,装置还包括:
第一存储模块,用于在从数据库中获取目标文件的存储路径的情况下,将目标文件的文件元数据存储至缓存。
在另一种可能的实现方式中,装置还包括:
第二存储模块,用于响应于终端发送的文件上传请求,基于文件上传请求中的目标文件,向存储服务器中存储目标文件;
生成模块,用于在将目标文件成功存储至存储服务器的情况下,生成目标文件的文件元数据,向数据库中存储目标文件的文件元数据;
第三存储模块,用于在将目标文件的文件元数据成功存储至数据库的情况下,向缓存中存储目标文件的文件元数据;
第四存储模块,用于在将目标文件的文件元数据成功存储至缓存的情况下,将目标文件的文件标识存储至第一标识列表。
在另一种可能的实现方式中,目标文件的文件元数据还包括:文件名称、文件类型以及业务类型;
生成模块,用于获取目标文件在存储服务器中的存储路径;获取目标文件成功存储至存储服务器时的时间戳,基于时间戳,生成目标文件的文件标识;确定目标文件的文件名称、文件类型以及目标文件所属的业务类型;
其中,目标文件的文件元数据由存储路径、文件标识、文件名称、文件类型以及业务类型组成。
在另一种可能的实现方式中,第三存储模块,用于对存储路径、文件名称、文件类型以及业务类型进行拼接,得到键值;将键值作为值,将文件标识作为键,以键-值的形式存储至缓存。
在另一种可能的实现方式中,第三存储模块,用于对存储路径、文件名称和业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;对加密后的存储路径、加密后的文件名称、加密后的业务类型以及文件类型进行拼接,得到键值。
在另一种可能的实现方式中,装置还包括:
第二添加模块,用于在目标文件的文件标识未成功存储至第一标识列表的情况下,将目标文件的文件标识添加至定时任务表中;其中,定时任务表用于定时向第一标识列表中添加文件标识;
扫描模块,用于在达到扫描时间时,对定时任务表进行扫描;
第三添加模块,用于在扫描到目标文件的文件标识的情况下,重新向第一标识列表中添加目标文件的文件标识。
本申请实施例提供了一种文件获取装置,该装置在获取文件时,先基于该文件的文件标识查询第一标识列表,在第一标识列表中存储该文件标识的情况下,基于该文件标识,查询缓存,在缓存中存储该文件的文件元数据的情况下,直接从缓存存储的该文件的文件元数据中获取该文件的存储路径,然后基于该存储路径,从分布式文件系统的存储服务器中获取该文件。可见,该装置可以直接从缓存中获取存储路径,无需查询数据库,减少了与数据库建立连接的次数,缩短了文件的获取时间,从而提高了文件的获取效率。
目标服务器的结构框图可以参见图8,该目标服务器800可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,CPU)801和存储器802,其中,该存储器802中存储有至少一条程序代码,该至少一条程序代码由该处理器801加载并执行以实现上述文件获取方法中目标服务器800所执行的操作。当然,该目标服务器800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该目标服务器800还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的文件获取方法。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的文件获取方法。
以上所述仅是为了便于本领域的技术人员理解本申请的技术方案,并不用以限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种文件获取方法,其特征在于,所述方法包括:
响应于终端发送的文件获取请求,基于所述文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识;
基于所述目标文件的文件标识,查询第一标识列表;其中,所述第一标识列表用于存储有效文件标识,所述有效文件标识是指数据库中存储的文件标识;
在所述第一标识列表中存储有所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,在缓存中查询所述目标文件的文件元数据;其中,所述缓存用于保存部分已存储文件的文件元数据,所述文件元数据包括文件标识和存储路径;
在所述缓存中存储有所述目标文件的文件元数据的情况下,从所述目标文件的文件元数据中获取所述目标文件的存储路径;
在所述缓存中未存储所述目标文件的文件元数据的情况下,基于所述目标文件的文件标识,查询所述数据库,从所述数据库存储的所述目标文件的文件元数据中获取所述目标文件的存储路径;其中,所述数据库用于保存全量已存储文件的文件元数据;
基于所述目标文件的存储路径,从分布式文件系统的存储服务器中获取所述目标文件;
在所述第一标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,查询第二标识列表;其中,所述第二标识列表用于存储无效文件标识,所述无效文件标识是指所述数据库中未存储的文件标识;
在所述第二标识列表中存储有所述目标文件的文件标识的情况下,过滤所述第一查询条件,且向所述终端发送第一提示消息,所述第一提示消息用于提示所述第一查询条件为无效查询条件;
在所述第二标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,依次查询所述缓存和所述数据库;
在所述缓存和所述数据库中均未存储所述目标文件的文件标识的情况下,将所述目标文件的文件标识添加至所述第二标识列表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在从所述数据库中获取所述目标文件的存储路径的情况下,将所述目标文件的文件元数据存储至所述缓存。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述终端发送的文件上传请求,基于所述文件上传请求中的目标文件,向所述存储服务器中存储所述目标文件;
在将所述目标文件成功存储至所述存储服务器的情况下,生成所述目标文件的文件元数据,向所述数据库中存储所述目标文件的文件元数据;
在将所述目标文件的文件元数据成功存储至所述数据库的情况下,向所述缓存中存储所述目标文件的文件元数据;
在将所述目标文件的文件元数据成功存储至所述缓存的情况下,将所述目标文件的文件标识存储至所述第一标识列表。
4.根据权利要求3所述的方法,其特征在于,所述目标文件的文件元数据还包括:文件名称、文件类型以及业务类型;
所述生成所述目标文件的文件元数据,包括:
获取所述目标文件在所述存储服务器中的存储路径;
获取所述目标文件成功存储至所述存储服务器时的时间戳,基于所述时间戳,生成所述目标文件的文件标识;
确定所述目标文件的文件名称、文件类型以及所述目标文件所属的业务类型;
其中,所述目标文件的文件元数据由所述存储路径、所述文件标识、所述文件名称、所述文件类型以及所述业务类型组成。
5.根据权利要求4所述的方法,其特征在于,所述向所述缓存中存储所述目标文件的文件元数据,包括:
对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值;
将所述键值作为值,将所述文件标识作为键,以键-值的形式存储至所述缓存。
6.根据权利要求5所述的方法,其特征在于,所述对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值,包括:
对所述存储路径、所述文件名称和所述业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;
对所述加密后的存储路径、所述加密后的文件名称、所述加密后的业务类型以及所述文件类型进行拼接,得到所述键值。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标文件的文件标识未成功存储至所述第一标识列表的情况下,将所述目标文件的文件标识添加至定时任务表中;其中,所述定时任务表用于定时向所述第一标识列表中添加文件标识;
在达到扫描时间时,对所述定时任务表进行扫描;
在扫描到所述目标文件的文件标识的情况下,重新向所述第一标识列表中添加所述目标文件的文件标识。
8.一种文件获取装置,其特征在于,所述装置包括:
第一确定模块,用于响应于终端发送的文件获取请求,基于所述文件获取请求中的第一查询条件,确定待查询的目标文件的文件标识;
第一查询模块,用于基于所述目标文件的文件标识,查询第一标识列表;其中,所述第一标识列表用于存储有效文件标识,所述有效文件标识是指数据库中存储的文件标识;
第二查询模块,用于在所述第一标识列表中存储有所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,在缓存中查询所述目标文件的文件元数据;其中,所述缓存用于保存部分已存储文件的文件元数据,所述文件元数据包括文件标识和存储路径;
第一获取模块,用于在所述缓存中存储有所述目标文件的文件元数据的情况下,从所述目标文件的文件元数据中获取所述目标文件的存储路径;
第三查询模块,用于在所述缓存中未存储所述目标文件的文件元数据的情况下,基于所述目标文件的文件标识,查询所述数据库,从所述数据库存储的所述目标文件的文件元数据中获取所述目标文件的存储路径;其中,所述数据库用于保存全量已存储文件的文件元数据;
第二获取模块,用于基于所述目标文件的存储路径,从分布式文件系统的存储服务器中获取所述目标文件;
第四查询模块,用于在所述第一标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,查询第二标识列表;其中,所述第二标识列表用于存储无效文件标识,所述无效文件标识是指所述数据库中未存储的文件标识;
过滤模块,用于在所述第二标识列表中存储有所述目标文件的文件标识的情况下,过滤所述第一查询条件,且向所述终端发送第一提示消息,所述第一提示消息用于提示所述第一查询条件为无效查询条件;
第五查询模块,用于在所述第二标识列表中未存储所述目标文件的文件标识的情况下,基于所述目标文件的文件标识,依次查询所述缓存和所述数据库;
第一添加模块,用于在所述缓存和所述数据库中均未存储所述目标文件的文件标识的情况下,将所述目标文件的文件标识添加至所述第二标识列表。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一存储模块,用于在从所述数据库中获取所述目标文件的存储路径的情况下,将所述目标文件的文件元数据存储至所述缓存。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二存储模块,用于响应于所述终端发送的文件上传请求,基于所述文件上传请求中的目标文件,向所述存储服务器中存储所述目标文件;
生成模块,用于在将所述目标文件成功存储至所述存储服务器的情况下,生成所述目标文件的文件元数据,向所述数据库中存储所述目标文件的文件元数据;
第三存储模块,用于在将所述目标文件的文件元数据成功存储至所述数据库的情况下,向所述缓存中存储所述目标文件的文件元数据;
第四存储模块,用于在将所述目标文件的文件元数据成功存储至所述缓存的情况下,将所述目标文件的文件标识存储至所述第一标识列表。
11.根据权利要求10所述的装置,其特征在于,所述目标文件的文件元数据还包括:文件名称、文件类型以及业务类型;
所述生成模块,用于获取所述目标文件在所述存储服务器中的存储路径;获取所述目标文件成功存储至所述存储服务器时的时间戳,基于所述时间戳,生成所述目标文件的文件标识;确定所述目标文件的文件名称、文件类型以及所述目标文件所属的业务类型;
其中,所述目标文件的文件元数据由所述存储路径、所述文件标识、所述文件名称、所述文件类型以及所述业务类型组成。
12.根据权利要求11所述的装置,其特征在于,所述第三存储模块,用于对所述存储路径、所述文件名称、所述文件类型以及所述业务类型进行拼接,得到键值;将所述键值作为值,将所述文件标识作为键,以键-值的形式存储至所述缓存。
13.根据权利要求12所述的装置,其特征在于,所述第三存储模块,用于对所述存储路径、所述文件名称和所述业务类型分别进行加密,得到加密后的存储路径、加密后的文件名称和加密后的业务类型;对所述加密后的存储路径、所述加密后的文件名称、所述加密后的业务类型以及所述文件类型进行拼接,得到所述键值。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二添加模块,用于在所述目标文件的文件标识未成功存储至所述第一标识列表的情况下,将所述目标文件的文件标识添加至定时任务表中;其中,所述定时任务表用于定时向所述第一标识列表中添加文件标识;
扫描模块,用于在达到扫描时间时,对所述定时任务表进行扫描;
第三添加模块,用于在扫描到所述目标文件的文件标识的情况下,重新向所述第一标识列表中添加所述目标文件的文件标识。
15.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至7任一项所述的文件获取方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至7任一项所述的文件获取方法。
CN202210987593.XA 2022-08-17 2022-08-17 文件获取方法、装置、服务器及存储介质 Active CN115391293B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210987593.XA CN115391293B (zh) 2022-08-17 2022-08-17 文件获取方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210987593.XA CN115391293B (zh) 2022-08-17 2022-08-17 文件获取方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN115391293A CN115391293A (zh) 2022-11-25
CN115391293B true CN115391293B (zh) 2023-09-12

Family

ID=84120477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210987593.XA Active CN115391293B (zh) 2022-08-17 2022-08-17 文件获取方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN115391293B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491152A (zh) * 2013-09-17 2014-01-01 华为数字技术(苏州)有限公司 分布式文件系统中元数据获取方法、装置及系统
CN105635196A (zh) * 2014-10-27 2016-06-01 中国电信股份有限公司 一种获取文件数据的方法、系统和应用服务器
CN107562757A (zh) * 2016-07-01 2018-01-09 阿里巴巴集团控股有限公司 基于分布式文件系统的查询、访问方法、装置及系统
CN109582649A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种元数据存储方法、装置、设备及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491152A (zh) * 2013-09-17 2014-01-01 华为数字技术(苏州)有限公司 分布式文件系统中元数据获取方法、装置及系统
CN105635196A (zh) * 2014-10-27 2016-06-01 中国电信股份有限公司 一种获取文件数据的方法、系统和应用服务器
CN107562757A (zh) * 2016-07-01 2018-01-09 阿里巴巴集团控股有限公司 基于分布式文件系统的查询、访问方法、装置及系统
CN109582649A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种元数据存储方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN115391293A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
CN109344172B (zh) 一种高并发数据处理方法、装置及客户端服务器
AU2016382908B2 (en) Short link processing method, device and server
CN103037312B (zh) 消息推送方法及装置
US10565372B1 (en) Subscription-based multi-tenant threat intelligence service
CN107733863B (zh) 一种分布式hadoop环境下的日志调试方法和装置
US20120290555A1 (en) Method, System and Apparatus of Hybrid Federated Search
CN111740868B (zh) 告警数据的处理方法和装置及存储介质
CN113687974B (zh) 客户端日志处理方法、装置及计算机设备
CN104503983A (zh) 为搜索引擎提供网站认证数据的方法及装置
CN114039961A (zh) 基于WebSocket的消息推送方法、设备、服务器及存储介质
CN101957830A (zh) 一种清单查询系统、装置和方法
CN112148745B (zh) 一种多HBase集群访问方法、装置及存储介质
CN115391293B (zh) 文件获取方法、装置、服务器及存储介质
CN113010904A (zh) 数据处理方法和装置及电子设备
US20230144072A1 (en) Data storage server and client devices for securely storing data
CN112835863A (zh) 操作日志的处理方法和处理装置
CN106534049B (zh) 基于服务器的数据下发方法、客户端、服务器及系统
CN111190858B (zh) 软件信息存储方法、装置、设备和存储介质
CN109714228B (zh) 一种用于设备和工人的全局监控系统
CN107704557B (zh) 操作互斥数据的处理方法、装置、计算机设备和存储介质
EP4154149B1 (en) Data storage server and client devices for securely storing data
CN117478535B (zh) 一种日志存储的方法和装置
CN115114361B (zh) 一种基于容器云平台统一接口的资源检索方法和系统
CN105930496A (zh) 数据查询方法及系统
CN116796099A (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