CN113986835B - FastDFS分布式文件的管理方法、装置、设备及存储介质 - Google Patents
FastDFS分布式文件的管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113986835B CN113986835B CN202111254427.0A CN202111254427A CN113986835B CN 113986835 B CN113986835 B CN 113986835B CN 202111254427 A CN202111254427 A CN 202111254427A CN 113986835 B CN113986835 B CN 113986835B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- fastdfs
- uploading
- request
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000005538 encapsulation Methods 0.000 claims abstract description 23
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000009517 secondary packaging Methods 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000013475 authorization Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
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)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能及数字医疗领域,具体公开了一种FastDFS分布式文件的管理方法、装置、设备及存储介质。该管理方法包括:基于客户端发送的文件上传请求提取上传文件信息、用户第一鉴权结果;若用户第一鉴权结果通过,则获取用户认证信息,将用户认证信息以及上传文件信息与文件上传请求进行第一次封装处理,获得FastDFS上传请求;根据FastDFS上传请求提取文件摘要信息;判断预设的存储器中是否存在与文件摘要信息相同的摘要信息;若存在,则从存储器中获取对应的文件存储路径,同时将文件存储路径与FastDFS上传请求进行第二次封装处理并存储于存储器中,根据文件存储路径响应文件上传请求。通过上述方式,本发明能够有效避免重复文件上传,节省存储空间及上传时间。
Description
技术领域
本发明涉及人工智能以及数字医疗的数据处理技术领域,特别是涉及一种fastDFS分布式文件的管理方法、装置、设备及存储介质。
背景技术
FastDFS是一个应用层轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡,能够灵活地进行冗余备份,线性扩展。FastDFS通过自定义TCP协议进行文件操作相关处理,后台基于C语言进行实现,性能比较高。但目前使用存在以下缺陷:
目前FastDFS分布式文件系统中的文件资源访问及操作无权限认证逻辑检验,大部分是通过配置Nginx直接映射对外暴露,存在较大安全隐患。
分布式文件系统作为微服务应用文件存储的重要公共组件,主要为多微服务或业务系统提供文件存储服务支撑,各业务系统针对FastDFS进行文件存储、读取等,但其操作策略只支持简单单个文件上传、查询处理,FastDFS组件本身并无明确业务区分,无法有效统计每个微服务或业务系统文件存储的现状,提供有效的统计及查询和策略,以及支持批量上传、下载支持等。
发明内容
本发明提供一种FastDFS分布式文件的管理方法、装置、设备及存储介质,能够有效避免重复文件上传,节省存储空间及上传时间。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种FastDFS分布式文件的管理方法,包括:
基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果;
若所述用户第一鉴权结果通过,则获取用户认证信息,根据所述用户认证信息获取用户信息以及业务系统信息并将所述用户认证信息、所述用户信息、所述业务系统信息、所述上传文件信息与所述文件上传请求进行第一次封装处理,获得FastDFS上传请求;
根据所述FastDFS上传请求提取文件摘要信息;
判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息;
若所述存储器中存在与所述文件摘要信息相同的摘要信息,则从所述存储器中获取与所述文件摘要信息对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求。
根据本发明的一个实施例,所述判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息之后,还包括:
若所述存储器中不存在与所述文件摘要信息相同的摘要信息,则根据所述FastDFS上传请求上传所述上传文件信息,并生成对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求。
根据本发明的一个实施例,所述根据所述FastDFS上传请求上传所述上传文件信息,并生成对应的文件存储路径还包括:
根据所述FastDFS上传请求查询FastDFS集群中的空闲存储服务器并返回所述空间存储服务器的ID信息;
根据所述ID信息执行所述FastDFS上传请求并基于执行所述FastDFS上传请求生成对应的文件存储路径。
根据本发明的一个实施例,所述根据所述FastDFS上传请求提取文件摘要信息还包括:
根据所述FastDFS上传请求提取文件数据流;
基于哈希算法计算所述文件数据流的哈希值,根据所述哈希值获取所述文件摘要信息。
根据本发明的一个实施例,所述管理方法还包括:
获取客户端发送的文件下载请求,根据所述文件下载请求提取下载文件信息;
根据所述下载文件信息获取文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径;
根据所述文件存储路径读取对应的数据流并根据所述数据流响应所述文件下载请求。
根据本发明的一个实施例,所述根据所述下载文件信息获取文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径还包括:
获取用户第二鉴权结果并根据所述用户第二鉴权结果获取用户认证信息;
根据所述用户认证信息获取用户信息以及业务系统信息,将所述用户信息、所述业务系统信息、所述下载文件信息、所述用户认证信息与所述文件下载请求进行封装处理,获得文件下载FastDFS请求;
根据所述文件下载FastDFS请求中的所述下载文件信息获取所述文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径。
根据本发明的一个实施例,所述根据所述文件存储路径读取对应的数据流并根据所述数据流响应所述文件下载请求还包括:
根据所述文件存储路径读取对应的数据流并判断所述数据流是否存在扩展字段信息;
若所述数据流存在所述扩展字段信息,则根据所述扩展字段信息将所述数据流进行封装处理或转换处理,根据处理结果响应所述文件下载请求;
若所述数据流不存在所述扩展字段信息,则根据所述数据流直接响应所述文件下载请求。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种FastDFS分布式文件的管理装置,包括:
第一提取模块,用于基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果;
封装模块,用于若所述用户第一鉴权结果通过,则获取用户认证信息,根据所述用户认证信息获取用户信息以及业务系统信息并将所述用户认证信息、所述用户信息、所述业务系统信息、所述上传文件信息与所述文件上传请求进行第一次封装处理,获得FastDFS上传请求;
第二提取模块,用于根据所述FastDFS上传请求提取文件摘要信息;
判断模块,用于判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息;
封装及响应模块,用于若所述存储器中存在与所述文件摘要信息相同的摘要信息,则从所述存储器中获取与所述文件摘要信息对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求。
为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的FastDFS分布式文件的管理方法。
为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述FastDFS分布式文件的管理方法。
本发明的有益效果是:在用户鉴权结果通过时,将用户认证信息封装在文件上传请求中,保证数据安全性,防篡改;通过检测文件摘要信息是否存在存储器中,能够有效避免重复文件上传,有效节省存储空间及上传时间,解决了目前FastDFS分布式文件系统中无权限认证逻辑检验导致文件对外暴露,存在安全隐患的问题以及无法有效统计每个微服务或业务系统的文件存储现状,提供有效的统计及查询和策略等问题。
附图说明
图1是本发明第一实施例的FastDFS分布式文件的管理方法的流程示意图;
图2是本发明第二实施例的FastDFS分布式文件的管理方法的流程示意图;
图3是本发明第二实施例的FastDFS分布式文件的管理方法中步骤S206的流程示意图;
图4是本发明第三实施例的FastDFS分布式文件的管理方法的流程示意图;
图5是本发明第三实施例的FastDFS分布式文件的管理方法中步骤S402的流程示意图;
图6是本发明第三实施例的FastDFS分布式文件的管理方法中步骤S403的流程示意图;
图7是本发明实施例的FastDFS分布式文件的管理装置的结构示意图;
图8是本发明实施例的计算机设备的结构示意图;
图9是本发明实施例的计算机存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例的FastDFS分布式文件的管理方法基于FastDFS微服务架构实现。FastDFS微服务架构可以包括客户端、服务网关、业务系统、存储器以及FastDFS集群。其中,每个客户端服务器都需要安装Nginx,客户端用于接收用户发送的文件上传请求以及文件下载请求。服务网关用于用户业务鉴权处理,判断发送请求的用户是否有访问权限和操作权限(上传文件权限和下载文件权限)。存储器包括数据库以及ES集群,其中,ES集群为分布式搜索引擎,针对大文件利用ES集群存储更便于用户快速查询。本实施例的存储器存储了上传文件的详细信息,包括用户相关信息、业务服务或系统相关信息、文件相关存储信息以及业务扩展信息等,用户可进行各个维度信息的查询或统计,也支持相关逻辑删除等操作处理。FastDFS集群包括跟踪服务器(Tracker)以及存储服务器(Storage)。跟踪服务器主要做调度工作,在访问上起负载均衡的作用,负责接收客户端的请求,选择合适的组合存储服务器,跟踪服务器与存储服务器之间也会用心跳机制来检测对方是否活着。跟踪服务器需要管理的信息(例如存储服务器的状态)也都放在内存中,并且所有的跟踪服务器都是对等的(即每个节点地位相等),便于扩展。客户端访问FastDFS集群的时候会随机分配一个跟踪服务器来和客户端进行交互。存储服务器用于存储文件和文件相关属性,存储服务器分成若干个组(Group)或卷,实际跟踪服务器就是管理的存储服务器中的组,而组内机器中则存储数据,Group可以隔离不同应用的数据,不同的应用的数据放在不同Group里面,同组内服务器上的文件是完全相同的,文件标识包括两部分,分别为组名和文件名(包含路径)。
本实施例的服务网关针对文件操作(上传、下载)请求进行用户鉴权处理,FastDFS集群的相关信息及操作接口完全隔离于客户端,针对FastDFS请求进行操作处理时,必须携带Token认证信息及系统授权编码等认证逻辑,通过服务网关检验通过后,由业务系统进行请求调用。
图1是本发明第一实施例的FastDFS分布式文件的管理方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果。
在步骤S101中,文件上传请求携带有上传文件信息以及用户第一鉴权结果。上传文件信息包括文件大小,文件名称,文件后缀,批次号(批量上传用)。本实施例的用户第一鉴权用于判断当前用户是否有上传文件的权限,在获取用户第一鉴权结果后,若用户鉴权结果通过,则执行步骤S2;若用户鉴权结果不通过,则返回token失效错误提示或无上传文件权限,让客户端重新进行认证授权。
步骤S102:若用户第一鉴权结果通过,则获取用户认证信息,根据用户认证信息获取用户信息以及业务系统信息并将用户认证信息、用户信息、业务系统信息、上传文件信息与文件上传请求进行第一次封装处理,获得FastDFS上传请求。
在步骤S102中,用户认证信息包括Token认证信息及系统授权编码,其中,Token认证信息携带有用户信息,系统授权编码携带有业务系统信息。用户信息包括用户姓名和账号信息,业务系统信息包括系统授权编码以及系统名称。用户上传文件时,需进行登录认证,若登录认证通过则可以获得有效会话Token,若登录认证不通过则无法获得有效会话Token。Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务端生成一个Token,便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
上传文件进行请求时,需要在文件上传请求中携带用户的有效会话Token,服务网关根据当前用户的Token进行有效校验,若Token有效,则通过系统授权编码判断上传文件归属于哪个系统以及判断用户对该系统是否有上传文件的操作权限;若Token有效且有上传文件权限,则用户第一鉴权结果通过;若Token失效或无上传文件权限,则用户第一鉴权结果不通过。
在后续处理FastDFS上传请求时,必须要求FastDFS上传请求携带Token认证信息及系统授权编码,否则无法响应FastDFS上传请求。因此,用户第一鉴权结果通过时,需将用户认证信息封装在文件上传请求中,保证数据安全性,防篡改。
步骤S103:根据FastDFS上传请求提取文件摘要信息。
在步骤S103中,文件摘要信息是用于确认上传文件的唯一性,因为FastDFS上传请求中封装有上传文件信息,因此,可以从上传文件信息中提取文件数据流,通过文件数据流获得文件摘要信息。
具体地,根据FastDFS上传请求提取文件数据流;基于哈希算法根据文件数据流获取文件摘要信息。本实施例的文件数据流具体可以为字节流,如果两个上传文件的字节流一致,则认为两个上传文件相同,如果两个上传文件的字节流不同,则认为两个上传文件不相同。哈希算法例如md5算法,根据文件上传的字节流,通过md5算法,获取字节流的digest摘要值,其值为base64位固定长度的编码值,即文件摘要信息,若两个上传文件的文件摘要信息相同,则认为两个上传文件相同,若两个上传文件的文件摘要信息不相同,则认为两个上传文件不相同。
步骤S104:判断预设的存储器中是否存在与文件摘要信息相同的摘要信息。
在步骤S104中,存储器为数据库和/或ES集群,一般小文件存储于数据库中,大文件存储于ES集群中。本实施例遍历存储器中所有文件摘要信息,检测是否存在与当前的文件摘要信息相同的文件摘要信息,若存在,则执行步骤S105。
步骤S105:若存储器中存在与文件摘要信息相同的摘要信息,则从存储器中获取与文件摘要信息对应的文件存储路径,同时将文件存储路径与FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于存储器中,根据文件存储路径响应文件上传请求。
在步骤S105中,若存储器中存在与文件摘要信息相同的摘要信息,表示与该文件摘要信息对应的文件已经上传过,无需重复上传该文件,因此,只需从存储器中获取与文件摘要信息对应的文件存储路径,将文件存储路径与当前的FastDFS上传请求进行封装处理后存储于存储器中,同时根据文件存储路径响应客户端的文件上传请求即可。在上一次FastDFS上传请求进行上传FastDFS处理时,文件上传成功后会生成FID(包括文件存储路径以及文件名),将FID与FastDFS上传请求封装处理后存储于存储器中。本实施例的文件存储路径包括组名和文件目录路径,如:文件存储路径为group1/MOO/OO/OC/wkjrbExx2KOAAAAAAAANiSQUgyg37275.h,其中,组名为group1,文件目录路径为/MOO/OO/OC/wkjrbExx2KOAAAAAAAANiSQUgyg37275.h。因此,本实施例中,若存储器中存在与文件摘要信息相同的摘要信息,则直接获取对应的文件存储路径响应文件上传请求。
本发明第一实施例的FastDFS分布式文件的管理方法通过在用户鉴权结果通过时,将用户认证信息封装在文件上传请求中,保证数据安全性,防篡改;通过检测文件摘要信息是否存在存储器中,能够有效避免重复文件上传,有效节省存储空间及上传时间,解决了目前FastDFS分布式文件系统中无权限认证逻辑检验导致文件对外暴露,存在安全隐患的问题以及无法有效统计每个微服务或业务系统的文件存储现状,提供有效的统计及查询和策略等问题。
图2是本发明第二实施例的FastDFS分布式文件的管理方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤S201:基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果。
在本实施例中,图2中的步骤S201和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S202:若用户第一鉴权结果通过,则获取用户认证信息,根据用户认证信息获取用户信息以及业务系统信息并将用户认证信息、用户信息、业务系统信息、上传文件信息与文件上传请求进行第一次封装处理,获得FastDFS上传请求。
在本实施例中,图2中的步骤S202和图1中的步骤S102类似,为简约起见,在此不再赘述。
步骤S203::根据FastDFS上传请求提取文件摘要信息。
在本实施例中,图2中的步骤S203和图1中的步骤S103类似,为简约起见,在此不再赘述。
步骤S204:判断预设的存储器中是否存在与文件摘要信息相同的摘要信息。
在本实施例中,图2中的步骤S204和图1中的步骤S104类似,为简约起见,在此不再赘述。
步骤S205:若存储器中存在与文件摘要信息相同的摘要信息,则从存储器中获取与文件摘要信息对应的文件存储路径,同时将文件存储路径与FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于存储器中,根据文件存储路径响应文件上传请求。
在本实施例中,图2中的步骤S205和图1中的步骤S105类似,为简约起见,在此不再赘述。
步骤S206:若存储器中不存在与文件摘要信息相同的摘要信息,则根据FastDFS上传请求上传对应的上传文件信息,并生成对应的文件存储路径,同时将文件存储路径与FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于存储器中,根据文件存储路径响应文件上传请求。
在步骤S206中,若存储器中不存在与文件摘要信息相同的摘要信息,表示与该文件摘要信息对应的文件未上传过,需根据FastDFS上传请求对上传文件执行上传操作,在FastDFS集群中,文件上传成功后会生成FID(包括文件存储路径以及文件名),将FID与FastDFS上传请求封装处理后存储于存储器中。在后续若获取到相同的文件摘要信息,则直接获取对应的文件存储路径即可。
进一步地,请参见图3,根据FastDFS上传请求上传对应的上传文件信息,并生成对应的文件存储路径的步骤还包括:
步骤S301:根据FastDFS上传请求查询FastDFS集群中的空闲存储服务器并返回空间存储服务器的ID信息;
步骤S302:根据ID信息执行FastDFS上传请求并基于执行FastDFS上传请求生成对应的文件存储路径。
本实施例的空间存储服务器的ID信息包括IP和端口,业务系统根据FastDFS上传请求查询FastDFS集群中适合存储上传文件的空间存储服务器的IP和端口,再将IP和端口返回给业务系统,业务系统根据ID信息执行FastDFS上传请求。存储服务器存储上传文件时生成FID,并将FID返回。
本发明第二实施例的FastDFS分布式文件的管理方法在第一实施例的基础上,通过检测文件摘要信息是否存在存储器中,能够有效避免重复文件上传,在确定当前需上传的文件未上传过才执行FastDFS上传操作,有效节省存储空间及上传时间。
图4是本发明第三实施例的FastDFS分布式文件的管理方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图4所示的流程顺序为限。如图4所示,该方法包括步骤:
步骤S401:获取客户端发送的文件下载请求,根据文件下载请求提取下载文件信息。
步骤S402:根据下载文件信息获取文件ID信息,根据文件ID信息从存储器中获取文件存储路径。
在步骤S402中,在文件上传成功时,上传接口会将文件的FID(包括ID信息)返回给上传文件的用户,用户在需要下载或查阅文件时,需要发送FID去请求文件的字节流数据。本实施例通过文件的ID信息做为key值去获取其文件存储路径。
进一步地,请参见图5,步骤S402还包括以下步骤:
步骤S501:获取用户第二鉴权结果并根据用户第二鉴权结果获取用户认证信息。
本实施例的用户第二鉴权与用户第一鉴权不同,用户第二鉴权用于判断当前用户是否有下载文件的权限,在获取用户第二鉴权结果后,若用户鉴权结果通过,则获取用户认证信息;若用户鉴权结果不通过,则返回token失效错误提示或无下载文件权限,让客户端重新进行认证授权。
本实施例的用户认证信息包括Token认证信息及系统授权编码,其中,Token认证信息携带有用户信息,系统授权编码携带有业务系统信息。用户信息包括用户姓名和账号信息,业务系统信息包括系统授权编码以及系统名称。
下载文件进行请求时,需要在文件下载请求中携带用户的有效会话Token,服务网关根据当前用户的Token进行有效校验,若Token有效,则通过系统授权编码判断上传文件归属于哪个系统以及判断用户对该系统是否有下载文件的操作权限;若Token有效且有下载文件权限,则用户第二鉴权结果通过;若Token失效或无下载文件权限,则用户第二鉴权结果不通过。
步骤S502:根据用户认证信息获取用户信息以及业务系统信息,将用户信息、业务系统信息、下载文件信息、用户认证信息与文件下载请求进行封装处理,获得文件下载FastDFS请求。
在后续处理FastDFS下载请求时,必须要求FastDFS下载请求携带Token认证信息及系统授权编码,否则无法响应FastDFS下载请求。因此,用户第二鉴权结果通过时,需将用户认证信息封装在文件上传请求中,保证数据安全性,防篡改。
步骤S503:根据文件下载FastDFS请求中的下载文件信息获取文件ID信息,根据文件ID信息从存储器中获取文件存储路径。
在步骤S503中,判断存储器中是否存在文件ID信息;若存储器中存文件在ID信息,则根据文件ID信息获取文件存储路径;若存储器中不存在文件ID信息,则反馈文件ID信息无效的信息给客户端。
步骤S403:根据文件存储路径读取对应的数据流并根据数据流响应文件下载请求。
进一步地,请参见图6,步骤S403还包括以下步骤:
步骤S601:根据文件存储路径读取对应的数据流并判断数据流是否存在扩展字段信息。
本实施例的扩展字段信息包括批次号和/或转换类型字段,若存在批次号,则支持批量下载,若存在转换类型字段,则支持文件扩展,例如,支持word转换pdf,html等。
步骤S602:若数据流存在扩展字段信息,则根据扩展字段信息将数据流进行封装处理或转换处理,根据处理结果响应文件下载请求。
在步骤S602中,若数据流存在批次号的扩展字段信息,则将同一批次号的所有文件进行打包压缩后,进行批量下载;若数据流存在转换类型字段的扩展字段信息,则将文件进行类型转换之后下载。
步骤S603:若数据流不存在扩展字段信息,则根据数据流直接响应文件下载请求。
本发明第三实施例的FastDFS分布式文件的管理方法通过.查询扩展字段信息支持批量文件下载以及将文件格式进行转换的操作。
图7是本发明实施例的FastDFS分布式文件的管理装置的结构示意图。如图7所示,该装置70包括第一提取模块71、封装模块72、第二提取模块73、判断模块74以及封装及响应模块75。
第一提取模块71用于基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果;
封装模块72用于若用户第一鉴权结果通过,则获取用户认证信息,根据用户认证信息获取用户信息以及业务系统信息并将用户认证信息、用户信息、业务系统信息、上传文件信息与文件上传请求进行第一次封装处理,获得FastDFS上传请求;
第二提取模块73用于根据FastDFS上传请求提取文件摘要信息;
判断模块74用于判断预设的存储器中是否存在与文件摘要信息相同的摘要信息;
封装及响应模块75用于若存储器中存在与文件摘要信息相同的摘要信息,则从存储器中获取与文件摘要信息对应的文件存储路径,同时将文件存储路径与FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于存储器中,根据文件存储路径响应文件上传请求。
请参阅图8,图8为本发明实施例的计算机设备的结构示意图。如图8所示,该计算机设备80包括处理器81及和处理器81耦接的存储器82。
存储器82存储有用于实现上述任一实施例所述的FastDFS分布式文件的管理方法的程序指令。
处理器81用于执行存储器82存储的程序指令以管理FastDFS分布式文件。
其中,处理器81还可以称为CPU(Central Processing Unit,中央处理单元)。处理器81可能是一种集成电路芯片,具有信号的处理能力。处理器81还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图9,图9为本发明实施例的计算机存储介质的结构示意图。本发明实施例的计算机存储介质存储有能够实现上述所有方法的程序文件91,其中,该程序文件91可以以软件产品的形式存储在上述计算机存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的计算机存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种FastDFS分布式文件的管理方法,其特征在于,包括:
基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果;
若所述用户第一鉴权结果通过,则获取用户认证信息,根据所述用户认证信息获取用户信息以及业务系统信息并将所述用户认证信息、所述用户信息、所述业务系统信息、所述上传文件信息与所述文件上传请求进行第一次封装处理,获得FastDFS上传请求;
根据所述FastDFS上传请求提取文件摘要信息;
判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息;
若所述存储器中存在与所述文件摘要信息相同的摘要信息,则从所述存储器中获取与所述文件摘要信息对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理,并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求;
所述判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息之后,还包括:
若所述存储器中不存在与所述文件摘要信息相同的摘要信息,则根据所述FastDFS上传请求上传所述上传文件信息,并生成对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求;
所述管理方法还包括:
获取客户端发送的文件下载请求,根据所述文件下载请求提取下载文件信息;
根据所述下载文件信息获取文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径;
根据所述文件存储路径读取对应的数据流并根据所述数据流响应所述文件下载请求;
所述根据所述下载文件信息获取文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径还包括:
获取用户第二鉴权结果并根据所述用户第二鉴权结果获取用户认证信息;
根据所述用户认证信息获取用户信息以及业务系统信息,将所述用户信息、所述业务系统信息、所述下载文件信息、所述用户认证信息与所述文件下载请求进行封装处理,获得文件下载FastDFS请求;
根据所述文件下载FastDFS请求中的所述下载文件信息获取所述文件ID信息,根据所述文件ID信息从所述存储器中获取文件存储路径。
2.根据权利要求1所述的管理方法,其特征在于,所述根据所述FastDFS上传请求上传所述上传文件信息并生成对应的文件存储路径还包括:
根据所述FastDFS上传请求查询FastDFS集群中的空闲存储服务器并返回所述空闲存储服务器的ID信息;
根据所述空闲存储服务器的ID信息执行所述FastDFS上传请求并基于执行所述FastDFS上传请求生成对应的文件存储路径。
3.根据权利要求1所述的管理方法,其特征在于,所述根据所述FastDFS上传请求提取文件摘要信息还包括:
根据所述FastDFS上传请求提取文件数据流;
基于哈希算法计算所述文件数据流的哈希值,根据所述哈希值获取所述文件摘要信息。
4.根据权利要求1所述的管理方法,其特征在于,所述根据所述文件存储路径读取对应的数据流并根据所述数据流响应所述文件下载请求还包括:
根据所述文件存储路径读取对应的数据流并判断所述数据流是否存在扩展字段信息;
若所述数据流存在所述扩展字段信息,则根据所述扩展字段信息将所述数据流进行封装处理或转换处理,根据处理结果响应所述文件下载请求;
若所述数据流不存在所述扩展字段信息,则根据所述数据流直接响应所述文件下载请求。
5.一种FastDFS分布式文件的管理装置,其特征在于,应用于如权利要求1-4任一项所述的管理方法,所述管理装置包括:
第一提取模块,用于基于客户端发送的文件上传请求提取上传文件信息以及用户第一鉴权结果;
封装模块,用于若所述用户第一鉴权结果通过,则获取用户认证信息,根据所述用户认证信息获取用户信息以及业务系统信息并将所述用户认证信息、所述用户信息、所述业务系统信息、所述上传文件信息与所述文件上传请求进行第一次封装处理,获得FastDFS上传请求;
第二提取模块,用于根据所述FastDFS上传请求提取文件摘要信息;
判断模块,用于判断预设的存储器中是否存在与所述文件摘要信息相同的摘要信息;
封装及响应模块,用于若所述存储器中存在与所述文件摘要信息相同的摘要信息,则从所述存储器中获取与所述文件摘要信息对应的文件存储路径,同时将所述文件存储路径与所述FastDFS上传请求进行第二次封装处理并将第二次封装处理结果存储于所述存储器中,根据所述文件存储路径响应所述文件上传请求。
6.一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4任一项所述的FastDFS分布式文件的管理方法。
7.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的FastDFS分布式文件的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254427.0A CN113986835B (zh) | 2021-10-27 | 2021-10-27 | FastDFS分布式文件的管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254427.0A CN113986835B (zh) | 2021-10-27 | 2021-10-27 | FastDFS分布式文件的管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986835A CN113986835A (zh) | 2022-01-28 |
CN113986835B true CN113986835B (zh) | 2024-05-17 |
Family
ID=79742372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111254427.0A Active CN113986835B (zh) | 2021-10-27 | 2021-10-27 | FastDFS分布式文件的管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986835B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760823A (zh) * | 2023-08-15 | 2023-09-15 | 北京安锐卓越信息技术股份有限公司 | 一种文件访问方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193582A (zh) * | 2017-04-06 | 2017-09-22 | 百度在线网络技术(北京)有限公司 | 发布方法及系统 |
CN110300151A (zh) * | 2019-05-22 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 数据文件上传方法及系统 |
CN110650164A (zh) * | 2018-06-26 | 2020-01-03 | 马上消费金融股份有限公司 | 文件的上传方法、装置、终端以及计算机存储介质 |
CN111198848A (zh) * | 2020-01-03 | 2020-05-26 | 南京领行科技股份有限公司 | 一种分布式文件访问方法、系统、服务器和存储介质 |
-
2021
- 2021-10-27 CN CN202111254427.0A patent/CN113986835B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193582A (zh) * | 2017-04-06 | 2017-09-22 | 百度在线网络技术(北京)有限公司 | 发布方法及系统 |
CN110650164A (zh) * | 2018-06-26 | 2020-01-03 | 马上消费金融股份有限公司 | 文件的上传方法、装置、终端以及计算机存储介质 |
CN110300151A (zh) * | 2019-05-22 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 数据文件上传方法及系统 |
CN111198848A (zh) * | 2020-01-03 | 2020-05-26 | 南京领行科技股份有限公司 | 一种分布式文件访问方法、系统、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113986835A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9705873B2 (en) | Multi-tenant discovery and claiming of distributed storage nodes over an insecure network | |
JP7126174B2 (ja) | ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法 | |
EP3178011B1 (en) | Method and system for facilitating terminal identifiers | |
US7496954B1 (en) | Single sign-on system and method | |
US8255409B2 (en) | Systems and methods for generating a change log for files in a managed network | |
CN102307210B (zh) | 一种数据下载系统及其数据管理和下载方法 | |
US20220329591A1 (en) | Method, apparatus and device for generating device fingerprint and storage medium | |
US10841313B2 (en) | Substituting callback URLs when using OAuth protocol exchanges | |
US11082494B2 (en) | Cross storage protocol access response for object data stores | |
CN111597537B (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN113395340A (zh) | 一种信息更新方法、装置、设备、系统和可读存储介质 | |
CN113986835B (zh) | FastDFS分布式文件的管理方法、装置、设备及存储介质 | |
US10863347B2 (en) | Policy enhancement for mixed capability devices | |
CN112769863B (zh) | 一种业务请求报文数据的处理方法、装置、电子设备及可读存储介质 | |
CN110708309A (zh) | 反爬虫系统及方法 | |
CN113010897B (zh) | 云计算安全管理方法及其系统 | |
CN116522308A (zh) | 数据库账号托管方法、装置、计算机设备及存储介质 | |
CN113765676B (zh) | 基于用户多身份的接口访问控制方法及相关设备 | |
CN107085681B (zh) | 鲁棒的计算设备标识框架 | |
US20230069458A1 (en) | Geofence tracking with device location privacy | |
CN115189956A (zh) | 一种文件安全共享方法 | |
CN112214769A (zh) | 基于SGX架构的Windows系统的主动度量系统 | |
CN113535744B (zh) | 租户数据修改方法、系统、设备及存储介质 | |
CN115002079B (zh) | 短地址生成方法、装置、设备及存储介质 | |
CN118051958B (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 |