CN115567212A - 文件处理方法、装置、计算机设备和计算机可读存储介质 - Google Patents
文件处理方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115567212A CN115567212A CN202211145560.7A CN202211145560A CN115567212A CN 115567212 A CN115567212 A CN 115567212A CN 202211145560 A CN202211145560 A CN 202211145560A CN 115567212 A CN115567212 A CN 115567212A
- Authority
- CN
- China
- Prior art keywords
- file
- stored
- target
- block
- size
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
本申请提供一种文件处理方法、装置、计算机设备和计算机可读存储介质,属于计算机技术领域。所述方法包括:获取客户端上传的文件属性信息,并根据所述文件属性信息生成描述元数据;根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送上传指令;获取并存储所述客户端发送的目标块文件,并确定与各所述目标块文件的唯一标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件。本申请可以达到提高文件处理的安全性的效果。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种文件处理方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着信息技术的发展,人们经常会将一些数据或者文件上传到数据库中,以供人们进行电子化办公。而数据或者文件的保密和安全一直是电子办公中非常重要的环节。
相关技术中,经常会将初始文件分割成多个块文件按照随机顺序上传到文件存储服务器中,并在各块文件的元数据中记录存储地址、文件标识和排列顺序,在用户需要下载或查询文件时,再按照各块文件的元数据中的存储地址和文件标识查找对应的块文件,并将对应的块文件按照排列顺序还原成初始文件。这样,就实现文件安全存储的目的。
然而,相关技术的方案中,其他人员可以很容易的根据各块文件的元数据将初始文件还原出来,这样就导致相关技术的方案存在文件处理的安全性较差的问题。
发明内容
本申请的目的在于提供一种文件处理方法、装置、计算机设备和计算机可读存储介质,可以达到提高文件处理的安全性的效果。
本申请的实施例是这样实现的:
本申请实施例的第一方面,提供一种文件处理方法,所述方法包括:
获取客户端上传的文件属性信息,并根据所述文件属性信息生成描述元数据,所述文件属性信息包括待存储文件的唯一标识和文件大小,所述描述元数据用于记录所述文件属性信息,所述唯一标识用于标识所述待存储文件的文件内容;
根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送上传指令,所述上传指令用于指示需要上传的目标文件和所述目标文件的文件大小,所述预存文件中包括至少一个预存块文件,各所述预存块文件中的首个预存块文件包括文件头信息,所述文件头信息包括块文件的大小信息和秘钥,所述首个预存块文件之后的各预存块文件基于所述秘钥加密得到,所述存储元数据用于指示所述预存文件的唯一标识以及存储地址;
获取并存储所述客户端发送的目标块文件,并确定与各所述目标块文件的唯一标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件。
可选地,所述根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送相应的上传指令,包括:
确定各预存文件的存储元数据中是否存在与所述描述元数据中的唯一标识匹配的一个目标存储元数据;
若存在,根据所述目标存储元数据中的已存储文件大小和最大存储大小,确定所述待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给所述客户端,其中,若所述目标文件的文件大小为0,则所述第一上传指令中包括所述目标文件的文件大小,否则,所述第一上传指令中包括所述目标文件的文件大小和所述预存块文件中的首个块文件的文件头信息;
若不存在,根据所述文件属性信息生成新的存储元数据,并向所述客户端发送第二上传指令,所述第二上传指令用于指示所述客户端从所述待存储文件的第一个字节开始上传。
可选地,所述根据所述目标存储元数据中的已存储文件大小和最大存储大小,确定所述待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给所述客户端,包括:
获取并解析所述目标存储元数据,以确定所述已存储文件大小和所述最大存储大小;
比较所述最大存储大小和所述已存储文件大小的大小;
若所述最大存储大小不大于所述已存储文件大小,则确定所述目标文件的文件大小为0,根据所述目标文件的文件大小生成所述第一上传指令,并将所述第一上传指令发送给所述客户端;
若所述最大存储大小大于所述已存储文件大小,则确定所述目标文件的文件大小为所述最大存储大小与所述已存储文件大小的差值,根据所述目标文件的文件大小和所述预存块文件中的首个块文件的文件头信息生成所述第一上传指令,并将所述第一上传指令发送给所述客户端。
可选地,所述确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件,包括:
若存在与所述目标存储元数据对应的预存块文件,则按照所述预存块文件对应的文件头信息中的秘钥对各所述目标块文件加密后进行存储,并将存储后的各所述目标块文件和关联的各所述预存块文件作为新的预存文件,将与所述目标块文件对应的所述待存储文件的描述元数据作为所述新的预存文件的描述元数据;
若不存在与所述目标存储元数据对应的预存块文件,则按照各所述目标块文件中首个块文件的文件头信息中的秘钥对各所述目标块文件中除首个块文件之外的其他块文件加密后进行存储。
可选地,所述确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件,包括:
将所述客户端加密后的各所述目标块文件进行存储,并将存储后的各所述目标块文件和关联的各所述预存块文件作为新的预存文件,将与所述目标块文件对应的所述待存储文件的描述元数据作为所述新的预存文件的描述元数据。
可选地,所述预存文件的描述元数据还包括所述预存文件的编码;
所述方法还包括:
接收所述客户端发送的文件下载指令,所述文件下载指令包括文件的编码和下载起始位置;
根据各所述预存文件的编码确定所述预存文件中是否存在与所述文件的编码匹配一个待下载数据;
若存在,则根据所述下载起始位置从所述待下载数据中确定出目标下载文件;
根据与所述目标下载文件对应的存储元数据中确定所述目标下载文件的存储地址,从所述目标下载文件的存储地址中获取各下载块文件并发送给所述客户端。
可选地,所述从所述目标下载文件的存储地址中获取各下载块文件并发送给所述客户端,包括:
确定所述下载块文件的文件头信息;
根据所述下载块文件的文件头信息中的大小信息确定各所述下载块文件中的加密文件;
根据所述下载块文件的文件头信息中的秘钥对所述加密文件进行解密,得到解密后文件,将所述解密后文件发送给所述客户端。
本申请实施例的第二方面,提供一种文件处理方法,所述方法包括:
向服务端发送待存储文件的文件属性信息,所述文件属性信息包括所述待存储文件的唯一标识和文件大小;
接收并解析所述服务端发送的上传指令,得到所述上传指令指示的需要上传的目标文件和所述目标文件的文件大小;
将所述目标文件分割成多个待存储块文件并发送给所述服务端进行存储。
本申请实施例的第三方面,提供了一种文件处理装置,所述装置包括:
获取生成模块,用于获取客户端上传的文件属性信息,并根据所述文件属性信息生成描述元数据,所述文件属性信息包括待存储文件的唯一标识和文件大小,所述描述元数据用于记录所述文件属性信息,所述唯一标识用于标识所述待存储文件的文件内容;
发送模块,用于根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送上传指令,所述上传指令用于指示需要上传的目标文件和所述目标文件的文件大小,所述预存文件中包括至少一个预存块文件,各所述预存块文件中的首个预存块文件包括文件头信息,所述文件头信息包括块文件的大小信息和秘钥,所述首个预存块文件之后的各预存块文件基于所述秘钥加密得到,所述存储元数据用于指示所述预存文件的唯一标识以及存储地址;
存储模块,用于获取并存储所述客户端发送的目标块文件,并确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件。
本申请实施例的第四方面,提供了一种文件处理装置,所述装置包括:
属性信息发送模块,用于向服务端发送待存储文件的文件属性信息,所述文件属性信息包括所述待存储文件的唯一标识和文件大小;
接收解析模块,用于接收并解析所述服务端发送的上传指令,得到所述上传指令指示的需要上传的目标文件和所述目标文件的文件大小;
分割发送模块,用于将所述目标文件分割成多个待存储块文件并发送给所述服务端进行存储。
本申请实施例的第五方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的文件处理方法以及上述第二方面所述的文件处理方法。
本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的文件处理方法以及上述第二方面所述的文件处理方法。
本申请实施例的有益效果包括:
本申请实施例提供的一种文件处理方法,通过获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。
其中,获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,由于该文件属性信息包括待存储文件的唯一标识和文件大小,该唯一标识用于标识该待存储文件的文件内容,这样,就可以获取到各待存储文件的唯一标识和文件大小,并生成各待存储文件的描述元数据,便于执行后续操作。
根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,由于该上传指令用于指示需要上传的目标文件和该目标文件的文件大小,那么在将该上传指令发送给该客户端之后,该客户端就可以根据该目标文件找到对应的待存储文件,并从该待存储文件分割出相应的块文件进行上传。并且,由于在该计算机设备中存储的各预存块文件中,仅有首个预存块文件中包括文件头信息,而其他的预存块文件中并不包括文件头信息,这样,即使其他人员或设备获取到了其他预存块文件,也无法拿到相应的秘钥对其他的预存块文件进行解密和/或解析,如此,就可以提高文件处理的安全性。
另外,由于在该首个预存块文件的文件结构中,同时包括秘钥、大小信息和区分符号,那么即使其他人员或设备获取到了该首个预存块文件,也无法区别出该秘钥、该大小信息和该区分符号,进而可以确保其他人员或设备无法轻易地得到该秘钥,如此,可以进一步确保文件处理的安全性。
获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。若各目标块文件是未对文件体中存储的文件内容进行加密的块文件,在将各目标块文件存储在该目标存储元数据指示的存储地址时,可以通过识别各目标块文件的文件头信息或与各目标块文件具有相同唯一标识的首个预存块文件的文件头信息对各目标文件块的文件体进行加密,这样,可以确保将各目标块文件存储在相应的存储地址之后,存储在该计算机设备中的所有块文件均是加密的,并且更新后的预存文件的各预存文件块均是按照相同的加密方式加密的。
这样,就可以获取到该客户端上传的各目标块文件,并将各目标块文件存储在相应的存储地址,形成新的预存文件,以实现文件上传的目的,进而还可以提高文件处理的安全性。
如此,可以达到提高文件处理的安全性的效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的第一种文件处理方法的流程图;
图2为本申请实施例提供的第二种文件处理方法的流程图;
图3为本申请实施例提供的第三种文件处理方法的流程图;
图4为本申请实施例提供的第四种文件处理方法的流程图;
图5为本申请实施例提供的第五种文件处理方法的流程图;
图6为本申请实施例提供的第六种文件处理方法的流程图;
图7为本申请实施例提供的一种文件处理装置的结构示意图;
图8为本申请实施例提供的另一种文件处理装置的结构示意图;
图9为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在相关技术中,经常会将初始文件分割成多个块文件按照随机顺序上传到文件存储服务器中,并在各块文件的元数据中记录存储地址、文件标识和排列顺序,在用户需要下载或查询文件时,再按照各块文件的元数据中的存储地址和文件标识查找对应的块文件,并将对应的块文件按照排列顺序还原成初始文件。这样,就实现文件安全存储的目的。然而,相关技术的方案中,其他人员可以很容易的根据各块文件的元数据将初始文件还原出来,这样就导致相关技术的方案存在文件处理的安全性较差的问题。
为此,本申请实施例提供了文件处理方法,通过获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件,可以达到提高文件处理的安全性的效果。
本申请实施例以应用在计算机设备中的文件处理方法为例进行说明。但不表明本申请实施例仅能应用于计算机设备中进行文件处理。
下面对本申请实施例提供的文件处理方法进行详细地解释说明。
图1为本申请提供的一种文件处理方法的流程图,该方法可以应用于计算机设备,该计算机设备可以是任一终端设备或服务器。参见图1,本申请实施例提供一种文件处理方法,包括:
步骤1001:获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据。
可选地,该客户端可以是运行在该计算机设备中的应用程序,也可以是运行在其他计算机设备中的应用程序,本申请实施例对此不做限定。用户可以通过输入装置向该客户端输入相应的数据或指令,或操作该客户端与其他应用程序或其他计算机设备进行交互。本申请实施例对此不做限定。
可选地,该文件属性信息包括待存储文件的唯一标识和文件大小。
该描述元数据可以用于记录该文件属性信息,该描述元数据还可以用于存储各待存储文件的文件名称、文件编码(ID)等信息,本申请实施例对此不作限定。
该待存储文件可以是指需要存储的任意文件,也可以是指需要由该客户端上传到服务端、数据库、服务器的任意文件,本申请实施例对此不做限定。
该文件大小可以是指该待存储文件存储在计算机设备中需要占用的存储空间的大小,也可以是指该待存储文件的字节数。
该唯一标识用于标识该待存储文件的文件内容,该文件内容具体可以是指该待存储文件中的文本、代码、符号等内容,本申请实施例对此不做限定。
另外,该唯一标识可以通过相应的散列函数对待存储文件进行运算得到的。例如可以采用MD5信息摘要算法(MD5 Message-Digest Algorithm,简称MD5)得到该唯一标识。
也就是说,若任意两个待存储文件的文本内容相同,那么这两个待存储文件的唯一标识也是相同的。反之,若任意两个待存储文件的文本内容不同,那么这两个待存储文件的唯一标识则不相同。
该文件属性信息中的唯一标识可以是由该客户端调用该相应的散列函数运算得到的,也可以是由其他应用程序调用该相应的散列函数运算得到之后再发送给该客户端的,本申请实施例对此不做限定。
并且,在生成该描述元数据之后,还可以存储该描述元数据,以便在后续需要用到该描述元数据时,可以快速、准确地调用该描述元数据。
这样,就可以获取到各待存储文件的唯一标识和文件大小,并生成各待存储文件的描述元数据,便于执行后续操作。
步骤1002:根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令。
可选地,该上传指令用于指示需要上传的目标文件和该目标文件的文件大小。
可选地,该目标文件可以是指在该待存储文件中需要进行上传的部分。具体地,该目标文件可以与该待存储文件相同,也可以是该待存储文件的一部分,本申请实施例对此不做限定。
若该目标文件与该待存储文件相同,则表明需要将整个待存储文件均作为该目标文件进行上传,在这种情况下,该目标文件的文件大小就是该待存储文件的大小。若该目标文件是该待存储文件的一部分,则表明只需上传该待存储文件的一部分,在这种情况下,该目标文件的文件大小就小于该待存储文件的大小。
该预存文件中包括至少一个预存块文件,各预存块文件中的首个预存块文件包括文件头信息。
该预存文件可以是指已经存储在该计算机设备中的文件,并且,该预存文件在存储到该计算机设备中时,可以是将该预存文件分割成至少一个块文件进行存储的。
各预存块文件可以是指将该预存文件分割得到的各个块文件。
并且,在存储各预存块文件时,可以按照各预存块文件的起始存储位置和终止存储位置的顺序来将各预存块文件进行存储,也可以按照任意的预设顺序将各预存块文件进行存储,还可以按照随机顺序对各预存块文件进行存储,本申请实施例对此不做限定。
该起始存储位置可以是指各预存块文件中存储的第一个字节在该预存文件中的位置,该终止存储位置可以是指各预存块文件中存储的最后一个字节在该预存文件中的位置。
各预存块文件中的首个预存块文件可以是指存储该预存文件的第一个字节的块文件。
可选地,该文件头信息包括块文件的大小信息和秘钥。那么,预存块文件中的文件头信息就可以指示各预存块文件的大小信息和秘钥。
该大小信息可以是指该块文件中存储该预存文件的内容的字节数,也可以是指该块文件的容量,还可以是指该块文件的存储空间的大小。
该秘钥可以是用于对各块文件中存储的文件内容进行加密、解密的参数。该秘钥具体可以用于将各块文件中存储的文件内容从明文形式转换为密文形式,也可以用于将各块文件中存储的文件内容从密文形式转换为明文形式。
例如,该秘钥可以是一个32字节的参数,在将该秘钥和各块文件中明文形式的文件内容输入到相应的加密算法之后,即可将明文形式的文件内容转换为密文形式的文件内容。在将该秘钥和各块文件中密文形式的文件内容输入到相应的解密算法之后,即可将密文形式的文件内容转换为明文形式的文件内容。
示例性地,该首个预存块文件的文件结构可以是【秘钥+大小信息+区分符号+文件体】,其中,该区分符号是指用于区分文件头信息和存储的该待存储文件的文件内容的符号,该区分符号可以是“丨”。该文件体可以存储该待存储文件的文件内容,具体可以存储使用该秘钥加密之后的该待存储文件的文件内容,本申请实施例对此不做限定。
又例如,各预存块文件中除该首个预存块文件之外的其他预存块文件的文件结构可以仅包括该文件体,并且,其他预存块文件的文件体可以基于该首个预存块文件中的秘钥进行加密。
可选地,该首个预存块文件之后的各预存块文件基于该秘钥加密得到。并且,该首个预存块文件之后的各预存块文件存储该待存储文件的文件内容的大小与该首个预存块文件存储该待存储文件的文件内容的大小相同。
也就是说,该首个预存块文件之后的各预存块文件中并不存储文件头信息,而是通过调用该首个预存块文件的文件头信息中的秘钥进行加解密的,并且在分割各预存块文件时均是按照该首个预存块文件的文件头信息中的大小信息分割的。
该存储元数据可以用于指示该预存文件的唯一标识以及存储地址。该存储元数据还可以用于指示预存文件的伪名称、已存储文件大小、该预存文件的最大存储大小,本申请实施例对此不做限定。
值得说明的是,由于该上传指令用于指示需要上传的目标文件和该目标文件的文件大小,那么在将该上传指令发送给该客户端之后,该客户端就可以根据该目标文件找到对应的待存储文件,并从该待存储文件分割出相应的块文件进行上传。并且,由于在该计算机设备中存储的各预存块文件中,仅有首个预存块文件中包括文件头信息,而其他的预存块文件中并不包括文件头信息,这样,即使其他人员或设备获取到了其他预存块文件,也无法拿到相应的秘钥对其他的预存块文件进行解密和/或解析,如此,就可以提高文件处理的安全性。
另外,由于在该首个预存块文件的文件结构中,同时包括秘钥、大小信息和区分符号,那么即使其他人员或设备获取到了该首个预存块文件,也无法区别出该秘钥、该大小信息和该区分符号,进而可以确保其他人员或设备无法轻易地得到该秘钥,如此,可以进一步确保文件处理的安全性。
步骤1003:获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。
可选地,各目标块文件就是指该客户端将该待存储文件分割成块文件之后上传的各块文件。该目标块文件可以是对文件体中存储的文件内容进行加密的块文件,也可以是未对文件体中存储的文件内容进行加密的块文件。
该目标存储元数据就是指包含与各目标块文件的唯一标识相同的唯一标识的存储元数据。
更新该预存文件的操作可以是将带有相同唯一标识的各目标块文件作为一个新的预存文件,也可以是将带有相同唯一标识的各目标块文件和之前已经存储的预存块文件一起作为一个新的预存文件,本申请实施例对此不做限定。
值得说明的是,若各目标块文件是未对文件体中存储的文件内容进行加密的块文件,在将各目标块文件存储在该目标存储元数据指示的存储地址时,可以通过识别各目标块文件的文件头信息或与各目标块文件具有相同唯一标识的首个预存块文件的文件头信息对各目标文件块的文件体进行加密,这样,可以确保将各目标块文件存储在相应的存储地址之后,存储在该计算机设备中的所有块文件均是加密的,并且更新后的预存文件的各预存文件块均是按照相同的加密方式加密的。
这样,就可以获取到该客户端上传的各目标块文件,并将各目标块文件存储在相应的存储地址,形成新的预存文件,以实现文件上传的目的,进而还可以提高文件处理的安全性。
在本申请实施例中,通过获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。
其中,获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,由于该文件属性信息包括待存储文件的唯一标识和文件大小,该唯一标识用于标识该待存储文件的文件内容,这样,就可以获取到各待存储文件的唯一标识和文件大小,并生成各待存储文件的描述元数据,便于执行后续操作。
根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,由于该上传指令用于指示需要上传的目标文件和该目标文件的文件大小,那么在将该上传指令发送给该客户端之后,该客户端就可以根据该目标文件找到对应的待存储文件,并从该待存储文件分割出相应的块文件进行上传。并且,由于在该计算机设备中存储的各预存块文件中,仅有首个预存块文件中包括文件头信息,而其他的预存块文件中并不包括文件头信息,这样,即使其他人员或设备获取到了其他预存块文件,也无法拿到相应的秘钥对其他的预存块文件进行解密和/或解析,如此,就可以提高文件处理的安全性。
另外,由于在该首个预存块文件的文件结构中,同时包括秘钥、大小信息和区分符号,那么即使其他人员或设备获取到了该首个预存块文件,也无法区别出该秘钥、该大小信息和该区分符号,进而可以确保其他人员或设备无法轻易地得到该秘钥,如此,可以进一步确保文件处理的安全性。
获取并存储该客户端发送的目标块文件,并确定与各目标块文件的唯一标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。若各目标块文件是未对文件体中存储的文件内容进行加密的块文件,在将各目标块文件存储在该目标存储元数据指示的存储地址时,可以通过识别各目标块文件的文件头信息或与各目标块文件具有相同唯一标识的首个预存块文件的文件头信息对各目标文件块的文件体进行加密,这样,可以确保将各目标块文件存储在相应的存储地址之后,存储在该计算机设备中的所有块文件均是加密的,并且更新后的预存文件的各预存文件块均是按照相同的加密方式加密的。
这样,就可以获取到该客户端上传的各目标块文件,并将各目标块文件存储在相应的存储地址,形成新的预存文件,以实现文件上传的目的,进而还可以提高文件处理的安全性。
如此,可以达到提高文件处理的安全性的效果。
一种可能的实现方式中,参见图2,根据该描述元数据和各预存文件的存储元数据,向该客户端发送相应的上传指令,包括:
步骤1004:确定各预存文件的存储元数据中是否存在与该描述元数据中的唯一标识匹配的一个目标存储元数据。
值得注意的是,在执行步骤1004时,可以通过遍历存储在该计算机设备中的所有预存文件的存储元数据,并将所有预存文件的存储元数据中的唯一标识与该描述元数据中的唯一标识进行比较,来确定是否存在一个预存文件的存储元数据中的唯一标识与该描述元数据中的唯一标识相同。
这样,就可以准确地确定出是否存在该目标存储元数据。
步骤1005:若存在,根据该目标存储元数据中的已存储文件大小和最大存储大小,确定该待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给该客户端。
其中,若该目标文件的文件大小为0,则该第一上传指令中包括该目标文件的文件大小,否则,该第一上传指令中包括该目标文件的文件大小和该预存块文件中的首个块文件的文件头信息。
可选地,该已存储文件大小可以指在该计算机设备中存储的该预存文件的大小,该最大存储大小可以是指该预存文件的完整文件内容的大小。
一般地,该最大存储大小等于或大于该已存储文件大小。
值得注意的是,若存在,则表明存储在该计算机设备中的一个预存文件的唯一标识与该待存储文件的唯一标识相同,也就表明该预存文件的完整文件内容与该待存储文件的完整文件内容相同。
值得说明的是,若该最大存储大小等于该已存储文件大小,则表明该预存文件已经完整地存储在该计算机设备中,在这种情况下,就不需要上传该预存文件或该待存储文件的文件内容。否则,则表明该预存文件只有一部分存储在了该计算机设备中,在这种情况下,就还需要继续上传该预存文件未存储在该计算机设备中的部分文件内容。
步骤1006:若不存在,根据该文件属性信息生成新的存储元数据,并向该客户端发送第二上传指令。
该第二上传指令用于指示该客户端从该待存储文件的第一个字节开始上传。
可选地,新的存储元数据中的唯一标识可以与当前存储在该计算机设备中的所有预存文件的唯一标识均不相同。
那么,新的存储元数据中指示的存储地址也可以与当前存储在该计算机设备中的所有预存文件的存储地址不同。
值得注意的是,若存在,则表明存储在该计算机设备中的所有预存文件的唯一标识与该待存储文件的唯一标识均不相同,也就表明不存在任何一个预存文件的完整文件内容与该待存储文件的完整文件内容相同。也就是说,在该计算机设备中并未存储该待存储文件的任何文件内容,需要将该待存储文件从第一个字节完全上传到该计算机设备。
一种可能的实现方式中,参见图3,根据该目标存储元数据中的已存储文件大小和最大存储大小,确定该待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给该客户端,包括:
步骤1007:获取并解析该目标存储元数据,以确定该已存储文件大小和该最大存储大小。
这样,就可以准确地确定出该已存储文件大小和该最大存储大小,可以提高文件处理的准确性。
步骤1008:比较该最大存储大小和该已存储文件大小的大小。
步骤1009:若该最大存储大小不大于该已存储文件大小,则确定该目标文件的文件大小为0,根据该目标文件的文件大小生成该第一上传指令,并将该第一上传指令发送给该客户端。
可选地,在这种情况下,该第一上传指令还可以指示该客户端直接生成并输出上传完成的信息,以及时反馈用户上传情况。
值得注意的是,若该最大存储大小不大于该已存储文件大小,则表明该预存文件已经完整地存储在该计算机设备中,在这种情况下,就不需要上传该预存文件或该待存储文件的文件内容。因此,确定该目标文件的文件大小就是0,在将根据该目标文件的文件大小生成该第一上传指令发送给客户端之后,就可以指示客户端不对该待存储文件做任何处理,也无需上传该待存储文件。
这样,就可以避免出现重复上传该待存储文件的问题,也可以避免在该计算机设备中存储多个带有相同唯一标识或文件内容相同的预存文件的问题,进而可以达到降低该计算机设备的存储冗余和存储压力的效果。
步骤1010:若该最大存储大小大于该已存储文件大小,则确定该目标文件的文件大小为该最大存储大小与该已存储文件大小的差值,根据该目标文件的文件大小和该预存块文件中的首个块文件的文件头信息生成该第一上传指令,并将该第一上传指令发送给该客户端。
可选地,在这种情况下,该第一上传指令可以用于指示该客户端按照该首个块文件的文件头信息中的大小信息分割出目标块文件,还可以用于指示该客户端按照该目标文件的文件大小定位需要分割的第一个目标文件块的起始位置。
这样,就可以提高生成该上传指令以及向该客户端发送该上传指令的灵活性,以及提高上传该待存储文件的准确性。
一种可能的实现方式中,确定与各目标块文件的标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件,包括:
若存在与该目标存储元数据对应的预存块文件,则按照该预存块文件对应的文件头信息中的秘钥对各目标块文件加密后进行存储,并将存储后的各目标块文件和关联的各预存块文件作为新的预存文件,将与该目标块文件对应的该待存储文件的描述元数据作为该新的预存文件的描述元数据。
可选地,与该目标存储元数据对应的预存块文件可以是指带有与该目标存储元数据相同唯一标识的预存块文件。
可选地,关联的各预存块文件可以是指与各目标块文件带有相同唯一标识的预存块文件。
值得注意的是,若存在与该目标存储元数据对应的预存块文件则可以表明各目标块文件的文件内容是当前存储在该计算机设备中的一个预存文件的后续文件内容,也就是说,各目标块文件对应的待存储文件的一部分内容已经存储在了计算机设备中。因此,需要将存储后的各目标块文件和关联的各预存块文件作为新的预存文件,这样就可以保证能将带有相同唯一标识的各块文件存储在一个存储地址作为同一个预存文件,并且还可以确保各预存文件中的各块文件均带有相同的唯一标识,进而可以确保各预存文件的文件内容的统一性、正确性和可靠性。
若不存在与该目标存储元数据对应的预存块文件,则按照各目标块文件中首个块文件的文件头信息中的秘钥对各目标块文件中除首个块文件之外的其他块文件加密后进行存储。
可选地,对各目标块文件中除首个块文件之外的其他块文件加密后进行存储具体可以是将加密后的其他块文件按照与各目标块文件带有相同唯一标识的存储元数据指示的存储地址存储的。
值得注意的是,若不存在与该目标存储元数据对应的预存块文件则可以表明各目标块文件的文件内容是全新的文件内容,该计算机设备中并未存储与各目标块文件带有相同唯一标识的文件块。因此,需要将各目标块文件作为一个新的预存文件存储在该计算机设备中。那么,在这种情况下,各目标块文件中的首个块文件带有文件头信息,通过按照各目标块文件中首个块文件的文件头信息中的秘钥对各目标块文件中除首个块文件之外的其他块文件加密后,就可以确保各目标块文件加密方式均是相同的。
一种可能的实现方式中,可以由该客户端根据上述上传指令中的文件头信息中的秘钥对各目标块文件进行加密,在这种情况下,该计算机设备接收到的各目标块文件就是加密好的块文件,因此,该计算机设备就无需再对各目标块文件进行加密,而可以直接对各目标块文件进行存储。
确定与各目标块文件的标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件,包括:
将该客户端加密后的各目标块文件进行存储,并将存储后的各目标块文件和关联的各预存块文件作为新的预存文件,将与该目标块文件对应的该待存储文件的描述元数据作为该新的预存文件的描述元数据。
这样,就可以由该客户端对各目标块文件进行加密,无需服务端进行额外的加密处理,可以降低服务端的处理压力。
一种可能的实现方式中,参见图4,在生成该待存储文件的描述元数据之后,就会存储该描述元数据,并且在将该待存储文件对应的各目标块文件存储之后,该待存储文件的描述元数据就可以作为该预存文件的描述元数据,该预存文件的描述元数据还包括该预存文件的编码,该方法还包括:
步骤1011:接收该客户端发送的文件下载指令。
可选地,该文件下载指令包括文件的编码和下载起始位置。
该文件的编码可以是指用于需要下载的文件的编码或ID。
该下载起始位置可以是指需要下载的文件的第一个字节在需要下载的整个文件中的位置。
步骤1012:根据各预存文件的编码确定该预存文件中是否存在与该文件的编码匹配的一个待下载文件。
可选地,该待下载文件可以是指存储在该计算机设备中的任一预存文件。
可选地,与该文件的编码匹配的一个待下载文件可以是指通过查找带有该文件的编码的描述元数据,并读取该描述元数据中的唯一标识,再根据读取出的唯一标识查找带有该唯一标识的存储元数据,确定的与该存储元数据对应的一个预存数据。
步骤1013:若存在,则根据该下载起始位置从该待下载文件中确定出目标下载文件。
可选地,该目标下载文件可以是指在该待下载文件中包括从该下载起始位置的字节至该待下载文件的最后一个字节的文件。
值得注意的是,若存在,则表明该计算机设备中存储有该文件下载指令指示的需要下载的文件。
步骤1014:根据与该目标下载文件对应的存储元数据中确定该目标下载文件的存储地址,从该目标下载文件的存储地址中获取各下载块文件并发送给该客户端。
可选地,各下载块文件可以是根据该待下载文件对应的全部预存块文件或部分预存块文件,具体由该目标下载文件的大小决定。
比如,若该目标下载文件的下载起始位置位于该待下载文件对应的全部预存块文件中的首个预存块文件的终止存储位置之前,则可以将全部预存块文件均作为各下载块文件。
若该目标下载文件的下载起始位置位于该待下载文件对应的全部预存块文件中的第N个预存块文件的终止存储位置之前,且位于第N个预存块文件的起始存储位置之后,则可以将第N个预存块文件之后的所有预存块文件作为各下载块文件。
值得注意的是,若该下载起始位置与各预存块文件的起始存储位置不同,则可以直接将包括该下载起始位置对应字节的预存块文件作为第一个下载块文件进行下载。
这样,可以确保发送给该客户端的各下载块文件中的文件内容可以完全包括该目标下载文件,这样,可以确保下载文件的完整性和可靠性。
一种可能的方式中,在执行步骤1012之后,若不存在与该文件的编码匹配的一个待下载文件,则表明该计算机设备中并未该文件下载指令指示的需要下载的文件,在这种情况下,可以直接向该客户端发送下载失败的提示信息。
一种可能的实现方式中,参见图5,从该目标下载文件的存储地址中获取各下载块文件并发送给该客户端,包括:
步骤1015:确定该下载块文件的文件头信息。
值得注意的是,若各下载块文件中包括各预存块文件的首个预存块文件,则可以直接读取各下载块文件中的第一个下载块文件的文件头信息。若各下载块文件中不包括各预存块文件的首个预存块文件,则可以读取各预存块文件的首个预存块文件的文件头信息作为各下载块文件的文件头信息。
步骤1016:根据该下载块文件的文件头信息中的大小信息确定各下载块文件中的加密文件。
也就是说,确定各下载块文件中的加密文件的大小均是相同的。
步骤1017:根据该下载块文件的文件头信息中的秘钥对该加密文件进行解密,得到解密后文件,将该解密后文件发送给该客户端。
这样,就可以确保发送给该客户端的文件均是解密后的明文形式的文件内容。
一种可能的实现方式,在将各目标块文件存储在该目标存储元数据指示的存储地址时,还可以随机为各目标块文件生成一个伪名称,并且,按照各目标块文件的顺序,为各目标块文件添加相应的后缀。
各目标块文件的顺序可以是指与关联的预存块文件按照起始存储位置和/或终止存储位置进行排序的顺序。
比如,一个目标块文件的顺序为1,则可以为这个目标块文件添加.part1的后缀,另一个目标块文件的顺序为N,则可以为这另一个目标块文件添加.partN的后缀。
示例性地,假设该秘钥为32字节的参数,那么可以取出各下载块文件对应的首个预存块文件中的第33-50个字节,通过上述区分符号的位置分割出第33个字节到该区分符号之间的信息作为各下载块文件的大小信息。
具体还可以通过如下公式计算出存储模块中需要取出的第一个下载块文件的后缀partN:
N=(下载起始位置÷大小信息)+1
对(下载起始位置÷大小信息)的值进行取整处理,将作为后缀为partN的预存块文件作为需要取出的第一个下载块文件,再取出各下载块文件对应的首个预存块文件中的前32个字符作为密钥,并通过秘钥解密出加密前的文件内容。
若N=1,则需去除文件头信息中区分符号之前的字节之后再对这个下载块文件进行解密,这样,可以确保解密出的文件内容的正确性。
又例如,还可以再通过如下公式计算出partN的解密后内容的起始取出坐标Pos:
Pos=下载起始位置%大小信息
以Pos作为起始取出作为截取partN的下载块文件的解密后内容,并返回客户端,这样,即使该下载起始位置与第一个下载块文件的起始存储位置不同,也可以通过Pos截取出从该下载起始位置到第一个下载块文件的终止存储位置之间的字节返回给客户端。如此,可以提高向该客户端发送目标下载文件的准确性。
然后,设置N=N+1,若该计算机设备中依然存在后缀为partN的预存文件块,则继续取出并解密后返回客户端。
循环上述处理过程直至取出所有的预存块文件,也即取出全部的下载块文件,并将所有预存块文件解密返回客户端。
参见图6,本申请实施例还提供了一种文件处理方法,该方法包括:
步骤2001:向服务端发送待存储文件的文件属性信息。
该文件属性信息包括该待存储文件的唯一标识和文件大小。
步骤2002:接收并解析该服务端发送的上传指令,得到该上传指令指示的需要上传的目标文件和该目标文件的文件大小。
该上传指令包括上述的第一上传指令和上述的第二上传指令。
步骤2003:将该目标文件分割成多个待存储块文件并发送给该服务端进行存储。
值得注意的是,这样,就可以实现将文件上传到该服务端的目的,并且,在上传各待存储块文件的过程中,该客户端并不需要用到各待存储块文件的元数据,这样,就无需将元数据发送给该客户端,进而可以提高文件处理的安全性。
一种可能的实现方式中,若接收到的该上传指令为第一上传指令,将该目标文件分割成多个待存储块文件并发送给该服务端进行存储,包括:
解析该第一上传指令,确定该目标文件的文件大小。
若该目标文件的文件大小为0,则生成并输出上传完成的信息。
在这种情况下,该客户端并不需要对各待存储文件进行操作。
若该目标文件的文件大小不为0,则获取该第一上传指令中的文件头信息,并按照该文件头信息中的大小信息从该目标文件中分割出至少一个待存储块文件。
示例性地,若该秘钥为32字节的参数,则读取该文件头信息的第33个字节至第50个字节的内容,以确定出上述区分符号的位置,并识别第33个字节至第50个字节的内容中位于该区分符号之前的内容,确定出文件头信息中的大小信息。
具体可以将该目标文件的第一个字符作为起始位置,分割出与该大小信息相同的一个待存储块文件。
若该秘钥为32字节的参数,则还可以取出该文件头信息的前32个字节的内容,并将取出的内容作为该秘钥来对待存储块文件进行加密。也可以不需取出该秘钥,而在上传该待存储块文件之后由服务端对该待存储块文件进行加密,本申请实施例对此不做限定。
将各待存储块文件发送给该服务端。
可选地,各待存储块文件可以是加密后的块文件,也可以是未加密的块文件。
在将各待存储块文件发送给该服务端之后,就可以将各待存储块文件视为该服务端接收到的目标块文件。
这样,就可以正确响应该第一上传指令,确保文件处理的可靠性和准确性。
一种可能的实现方式中,若接收到的该上传指令为第二上传指令,将该目标文件分割成多个待存储块文件并发送给该服务端进行存储,包括:
将该待存储文件作为该目标文件,按照预设大小将该目标文件分割为至少一个待存储块文件。
可选地,该预设大小可以是由相关技术人员根据实际需要设置的,也可以是由该客户端根据当前网络环境及设备硬件环境自行选择的,本申请实施例对此不做限定。
随机生成与该待存储块文件对应的秘钥,将与该待存储块文件对应的秘钥和该预设大小作为各待存储块文件中的首个待存储块文件的文件头信息。
可选地,随机生成与该待存储块文件对应的秘钥可以是指调用任意加密算法得到一个用于对块文件进行加解密的秘钥。
将各待存储块文件发送给该服务端。
这样,就可以正确响应该第二上传指令,并从该待存储文件的第一个字节开始上传该待存储文件。
一种可能的实现方式中,该方法还包括:
向该服务端发送文件下载指令。
可选地,该文件下载指令包括文件的编码和下载起始位置。
可选地,该文件下载指令可以是由用户通过输入装置输入到该客户端的指令。
接收该服务端发送的各下载块文件。
这样,就可以实现从该服务端下载文件的目的,并且,在接收各下载块文件的过程中,该客户端并不需要用到各下载块文件的元数据,如此,就无需将元数据发送给该客户端,进而可以提高文件处理的安全性。
下述对用以执行的本申请所提供文件处理方法的装置、设备及计算机可读存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图7是本申请实施例提供的一种文件处理装置的结构示意图,参见图7,该装置包括:
获取生成模块301,用于获取客户端上传的文件属性信息,并根据该文件属性信息生成描述元数据,该文件属性信息包括待存储文件的唯一标识和文件大小,该描述元数据用于记录该文件属性信息,该唯一标识用于标识该待存储文件的文件内容;
发送模块302,用于根据该描述元数据和各预存文件的存储元数据,向该客户端发送上传指令,该上传指令用于指示需要上传的目标文件和该目标文件的文件大小,该预存文件中包括至少一个预存块文件,各预存块文件中的首个预存块文件包括文件头信息,该文件头信息包括块文件的大小信息和秘钥,该首个预存块文件之后的各预存块文件基于该秘钥加密得到,该存储元数据用于指示该预存文件的唯一标识以及存储地址;
存储模块303,用于获取并存储该客户端发送的目标块文件,并确定与各目标块文件的标识对应的目标存储元数据,将各目标块文件存储在该目标存储元数据指示的存储地址,并更新该预存文件。
图8是本申请实施例提供的一种文件处理装置的结构示意图,参见图8,该装置包括:
属性信息发送模块401,用于向服务端发送待存储文件的文件属性信息,该文件属性信息包括该待存储文件的唯一标识和文件大小;
接收解析模块402,用于接收并解析该服务端发送的上传指令,得到该上传指令指示的需要上传的目标文件和该目标文件的文件大小;
分割发送模块403,用于将该目标文件分割成多个待存储块文件并发送给该服务端进行存储。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图9是本申请实施例提供的一种计算机设备的结构示意图。参见图9,计算机设备包括:存储器501、处理器502,存储器501中存储有可在处理器502上运行的计算机程序,处理器502执行计算机程序时,实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述任一文件处理方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种文件处理方法,其特征在于,所述方法包括:
获取客户端上传的文件属性信息,并根据所述文件属性信息生成描述元数据,所述文件属性信息包括待存储文件的唯一标识和文件大小,所述描述元数据用于记录所述文件属性信息,所述唯一标识用于标识所述待存储文件的文件内容;
根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送上传指令,所述上传指令用于指示需要上传的目标文件和所述目标文件的文件大小,所述预存文件中包括至少一个预存块文件,各所述预存块文件中的首个预存块文件包括文件头信息,所述文件头信息包括块文件的大小信息和秘钥,所述首个预存块文件之后的各预存块文件基于所述秘钥加密得到,所述存储元数据用于指示所述预存文件的唯一标识以及存储地址;
获取并存储所述客户端发送的目标块文件,并确定与各所述目标块文件的唯一标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件。
2.如权利要求1所述的文件处理方法,其特征在于,所述根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送相应的上传指令,包括:
确定各预存文件的存储元数据中是否存在与所述描述元数据中的唯一标识匹配的一个目标存储元数据;
若存在,根据所述目标存储元数据中的已存储文件大小和最大存储大小,确定所述待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给所述客户端,其中,若所述目标文件的文件大小为0,则所述第一上传指令中包括所述目标文件的文件大小,否则,所述第一上传指令中包括所述目标文件的文件大小和所述预存块文件中的首个块文件的文件头信息;
若不存在,根据所述文件属性信息生成新的存储元数据,并向所述客户端发送第二上传指令,所述第二上传指令用于指示所述客户端从所述待存储文件的第一个字节开始上传。
3.如权利要求2所述的文件处理方法,其特征在于,所述根据所述目标存储元数据中的已存储文件大小和最大存储大小,确定所述待存储文件中需要上传的目标文件的文件大小,并将第一上传指令发送给所述客户端,包括:
获取并解析所述目标存储元数据,以确定所述已存储文件大小和所述最大存储大小;
比较所述最大存储大小和所述已存储文件大小的大小;
若所述最大存储大小不大于所述已存储文件大小,则确定所述目标文件的文件大小为0,根据所述目标文件的文件大小生成所述第一上传指令,并将所述第一上传指令发送给所述客户端;
若所述最大存储大小大于所述已存储文件大小,则确定所述目标文件的文件大小为所述最大存储大小与所述已存储文件大小的差值,根据所述目标文件的文件大小和所述预存块文件中的首个块文件的文件头信息生成所述第一上传指令,并将所述第一上传指令发送给所述客户端。
4.如权利要求1所述的文件处理方法,其特征在于,所述确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件,包括:
若存在与所述目标存储元数据对应的预存块文件,则按照所述预存块文件对应的文件头信息中的秘钥对各所述目标块文件加密后进行存储,并将存储后的各所述目标块文件和关联的各所述预存块文件作为新的预存文件,将与所述目标块文件对应的所述待存储文件的描述元数据作为所述新的预存文件的描述元数据;
若不存在与所述目标存储元数据对应的预存块文件,则按照各所述目标块文件中首个块文件的文件头信息中的秘钥对各所述目标块文件中除首个块文件之外的其他块文件加密后进行存储。
5.如权利要求1所述的文件处理方法,其特征在于,所述确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件,包括:
将所述客户端加密后的各所述目标块文件进行存储,并将存储后的各所述目标块文件和关联的各所述预存块文件作为新的预存文件,将与所述目标块文件对应的所述待存储文件的描述元数据作为所述新的预存文件的描述元数据。
6.如权利要求1-5任一项所述的文件处理方法,其特征在于,所述预存文件的描述元数据还包括所述预存文件的编码;
所述方法还包括:
接收所述客户端发送的文件下载指令,所述文件下载指令包括文件的编码和下载起始位置;
根据各所述预存文件的编码确定所述预存文件中是否存在与所述文件的编码匹配一个待下载数据;
若存在,则根据所述下载起始位置从所述待下载数据中确定出目标下载文件;
根据与所述目标下载文件对应的存储元数据中确定所述目标下载文件的存储地址,从所述目标下载文件的存储地址中获取各下载块文件并发送给所述客户端。
7.如权利要求6所述的文件处理方法,其特征在于,所述从所述目标下载文件的存储地址中获取各下载块文件并发送给所述客户端,包括:
确定所述下载块文件的文件头信息;
根据所述下载块文件的文件头信息中的大小信息确定各所述下载块文件中的加密文件;
根据所述下载块文件的文件头信息中的秘钥对所述加密文件进行解密,得到解密后文件,将所述解密后文件发送给所述客户端。
8.一种文件处理方法,其特征在于,所述方法包括:
向服务端发送待存储文件的文件属性信息,所述文件属性信息包括所述待存储文件的唯一标识和文件大小;
接收并解析所述服务端发送的上传指令,得到所述上传指令指示的需要上传的目标文件和所述目标文件的文件大小;
将所述目标文件分割成多个待存储块文件并发送给所述服务端进行存储。
9.一种文件处理装置,其特征在于,所述装置包括:
获取生成模块,用于获取客户端上传的文件属性信息,并根据所述文件属性信息生成描述元数据,所述文件属性信息包括待存储文件的唯一标识和文件大小,所述描述元数据用于记录所述文件属性信息,所述唯一标识用于标识所述待存储文件的文件内容;
发送模块,用于根据所述描述元数据和各预存文件的存储元数据,向所述客户端发送上传指令,所述上传指令用于指示需要上传的目标文件和所述目标文件的文件大小,所述预存文件中包括至少一个预存块文件,各所述预存块文件中的首个预存块文件包括文件头信息,所述文件头信息包括块文件的大小信息和秘钥,所述首个预存块文件之后的各预存块文件基于所述秘钥加密得到,所述存储元数据用于指示所述预存文件的唯一标识以及存储地址;
存储模块,用于获取并存储所述客户端发送的目标块文件,并确定与各所述目标块文件的标识对应的目标存储元数据,将各所述目标块文件存储在所述目标存储元数据指示的存储地址,并更新所述预存文件。
10.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至7任一项所述的文件处理方法以及上述权利要求8所述的文件处理方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至7任一项所述的文件处理方法以及上述权利要求8所述的文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145560.7A CN115567212A (zh) | 2022-09-20 | 2022-09-20 | 文件处理方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145560.7A CN115567212A (zh) | 2022-09-20 | 2022-09-20 | 文件处理方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115567212A true CN115567212A (zh) | 2023-01-03 |
Family
ID=84741641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145560.7A Pending CN115567212A (zh) | 2022-09-20 | 2022-09-20 | 文件处理方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115567212A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988002A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
-
2022
- 2022-09-20 CN CN202211145560.7A patent/CN115567212A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988002A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
CN115988002B (zh) * | 2023-02-16 | 2023-08-15 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948152B (zh) | 信息存储方法、获取方法、装置及设备 | |
US20130262863A1 (en) | Searchable encryption processing system | |
CN111984987B (zh) | 一种用于电子病历脱敏及还原的方法、装置、系统和介质 | |
CN111756522A (zh) | 数据处理方法及系统 | |
US20040240670A1 (en) | Password security utility | |
CN112380575A (zh) | 多方电子签名合成方法、装置、设备及存储介质 | |
CN111654522B (zh) | 文件同步方法、文件同步服务器及存储介质 | |
CN112163412A (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN113449338A (zh) | 基于区块链的信息加密存储方法及系统 | |
CN115567212A (zh) | 文件处理方法、装置、计算机设备和计算机可读存储介质 | |
CN115694949A (zh) | 一种基于区块链的隐私数据共享方法及系统 | |
CN112287371B (zh) | 一种存储工业数据的方法、装置和计算机设备 | |
CN112084487B (zh) | 一种弱口令分析方法、装置、存储介质及电子设备 | |
CN115859370B (zh) | 交易数据的处理方法、装置、计算机设备和存储介质 | |
JP2006189925A (ja) | 個人情報管理システム、個人情報管理プログラムおよび個人情報保護方法 | |
US20230144072A1 (en) | Data storage server and client devices for securely storing data | |
CN111984989A (zh) | 一种自身校验发布和访问url的方法、装置、系统和介质 | |
CN111291001A (zh) | 计算机文件的读取方法、装置、计算机系统及存储介质 | |
CN110674511A (zh) | 基于椭圆曲线加密算法的离线数据保护方法及系统 | |
CN114239029A (zh) | 系统日志安全处理方法、装置、设备及存储介质 | |
CN114124469A (zh) | 数据处理的方法、装置和设备 | |
CN113111041A (zh) | 一种电子病历文件的图像数据处理方法 | |
JPWO2017168798A1 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
CN111984631A (zh) | 生产数据迁移方法、装置、计算机设备及存储介质 | |
CN112632588A (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 |