CN109710194A - 上传文件的存储方法及装置 - Google Patents
上传文件的存储方法及装置 Download PDFInfo
- Publication number
- CN109710194A CN109710194A CN201811637629.1A CN201811637629A CN109710194A CN 109710194 A CN109710194 A CN 109710194A CN 201811637629 A CN201811637629 A CN 201811637629A CN 109710194 A CN109710194 A CN 109710194A
- Authority
- CN
- China
- Prior art keywords
- file
- data block
- data
- upper transmitting
- queue
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种上传文件的存储方法及装置,所述方法包括:获取上传文件的文件数据;将文件数据划分为至少一个数据块;当确定文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中;当将第一个数据块存储至队列后,依次读取队列中的数据块,并将读取的数据块写入磁盘中的备份文件;在队列中删除读取的数据块。在本申请中,将文件数据划分为数据块,并将数据块以队列的形式存储在内存中,在存储数据块的同时,读取队列中的数据块,并执行写入操作和删除操作。避免了内存被长时间占用,能够提高网络设备的运行效率;而且,由于无需将文件数据全部存储至内存,因此能够备份数据量大的上传文件。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种上传文件的存储方法及装置。
背景技术
随着云计算技术的发展,在云计算技术的基础上延伸出云存储系统的概念,云存储系统是指利用集群应用、网络、分布式软件等技术,将网络中大量服务器通过软件结合起来协同工作,共同对外提供数据存储和业务访问功能的系统,具备安全、低成本、高可靠性等特点。例如,将电脑中的数据上传到网络硬盘。越来越多的公司在日常工作中,要求工作人员将的文件资料等工作数据存入网络硬盘,以防止因为电脑出现意外造成的文件丢失。同时,为了公司的信息安全,会通过网络设备,如网关,备份记录上传到网盘的文件资料,从而能够管理、审计员工使用网盘的行为,确保信息安全。
在现有技术中,用户向网络硬盘上传文件时,能够留存及还原上传文件的网络设备在自身传输的数据区块中,识别出上传文件的数据区块。网络设备再将上传文件的全部数据缓存在自身的内存中。当缓存完成后,网络设备将上传文件的全部数据写入磁盘,还原生成上传文件。
由于现有技术需要将上传文件的全部数据先缓存到内存中,再写入磁盘,导致有限的内存空间被长时间占用,阻碍网络设备的其它进程使用内存,降低了网络设备的运行效率;而且,由于内存的存储空间通常较小,因此无法留存及还原数据量大的上传文件。
发明内容
本申请提供一种上传文件的存储方法及装置,可用于解决在现有技术中因将上传文件的全部数据先缓存到内存中,再写入磁盘,导致有限的内存空间被长时间占用,阻碍网络设备的其它进程使用内存,降低了网络设备的运行效率;以及,由于内存的存储空间通常较小,因此无法留存及还原数据量大的上传文件的问题。
第一方面,本申请提供一种上传文件的存储方法,所述方法包括:
获取上传文件的数据区块,所述数据区块包括所述上传文件的文件数据;
将所述文件数据划分为至少一个数据块;
当确定所述文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中;
当将所述第一个数据块存储至所述队列后,依次读取所述队列中的数据块,并将读取的数据块写入磁盘中的备份文件,所述备份文件为所述上传文件的复制文件;
在所述队列中删除所述读取的数据块。
可选地,所述数据区块还包括所述上传文件的文件信息,所述文件信息用于唯一指示一个上传文件,并且携带在所述队列的数据块中;
所述将读取的数据块写入磁盘中的备份文件之前,还包括:
根据所述文件信息,检测所述磁盘中是否存储有所述备份文件;
若没有所述备份文件,则创建所述备份文件,所述备份文件的文件名为所述文件信息。
可选地,所述将所述文件数据划分为至少一个数据块之后,还包括:
确定每个数据块相对于所述文件数据的起始位置的偏移值,所述文件数据的起始位置是指所述文件数据的在所述上传文件中的第一个字节的位置;
将所述偏移值添加至对应的数据块中。
可选地,所述将读取的数据块写入磁盘中的备份文件,包括:
根据所述读取的数据块的偏移值,确定所述读取的数据块在所述备份文件中的写入位置;
在所述写入位置写入所述读取的数据块。
可选地,所述数据区块还包括所述上传文件的安全指数,所述安全指数表示所述上传文件的安全级别;
所述方法还包括:
当检测到所述安全指数大于预设阈值时,则确定无需备份存储所述上传文件;
当检测到所述安全指数不大于所述预设阈值时,则确定需要备份存储所述上传文件。
第二方面,本申请提供一种上传文件的存储装置,所述装置包括:
数据获取模块,用于获取上传文件的数据区块,所述数据区块包括所述上传文件的文件数据;
数据划分模块,用于将所述文件数据划分为至少一个数据块;
数据存储模块,用于当确定所述文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中;
数据写入模块,用于当将所述第一个数据块存储至所述队列后,依次读取所述队列中的数据块,并将读取的数据块写入磁盘中的备份文件,所述备份文件为所述上传文件的复制文件;
数据删除模块,用于在所述队列中删除所述读取的数据块。
可选地,所述数据区块还包括所述上传文件的文件信息,所述文件信息用于唯一指示一个上传文件,并且携带在所述队列的数据块中;
数据写入模块,还用于:
根据所述文件信息,检测所述磁盘中是否存储有所述备份文件;
若没有所述备份文件,则创建所述备份文件,所述备份文件的文件名为所述文件信息。
可选地,所述装置还包括:偏移确定模块,用于:
确定每个数据块相对于所述文件数据的起始位置的偏移值,所述文件数据的起始位置是指所述文件数据的在所述上传文件中的第一个字节的位置;
将所述偏移值添加至对应的数据块中。
可选地,所述数据写入模块,具体用于:
根据所述读取的数据块的偏移值,确定所述读取的数据块在所述备份文件中的写入位置;
在所述写入位置写入所述读取的数据块。
可选地,所述数据区块还包括所述上传文件的安全指数,所述安全指数表示所述上传文件的安全级别;
所述装置还包括:安全监测模块,用于:
当检测到所述安全指数大于预设阈值时,则确定无需备份存储所述上传文件;当检测到所述安全指数不大于所述预设阈值时,则确定需要备份存储所述上传文件。
在本申请中,将上传文件的文件数据划分为数据块,并将数据块以队列的形式存储在内存中。同时,利用队列先进先出的特性,在存储数据块的同时,读取队列中已经插入的数据块,并执行备份文件的写入和数据块删除。文件数据的存储、写入与删除同时进行,避免了有限的内存空间被长时间占用,能够提高内存的使用效率,进而提高网络设备的运行效率;而且,由于网络设备无需将文件数据全部存储至内存再进行写入操作,因此能够留存、备份数据量大的上传文件。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种网络架构的示意图;
图2是根据一示例性实施例示出的一种上传文件的存储方法的流程图;
图3是根据一示例性实施例示出的文件数据划分为数据块并插入队列的示意图;
图4是根据一示例性实施例示出的一种上传文件的存储装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中的技术方案作进一步详细的说明。
在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例适用的网络架构进行说明。请参考图1,其示出了本申请实施例适用的网络架构的示意图。
该网络架构可以包括:终端101、网络设备102和服务器103。在本申请实施例中,将文件上传至网络硬盘,实际是终端101通过网络设备102将上传文件传输给服务器103。网络硬盘不是指实际的物理硬盘,而是服务器103中的存储空间。
终端101是支持将文件上传至网络硬盘的终端,例如手机、平板电脑,个人计算机(Personal Computer,PC)等。服务器103是提供网络硬盘服务的服务器。服务器103可以是单个服务器,也可以是多个服务器组成的服务器集群。网络设备102是为终端101提供网络安全服务的设备,例如安全路由器、网关等。多个终端101可以通过同一网络设备102来上传文件。
图2是根据一示例性实施例示出的一种上传文件的存储方法的流程图,该方法可以包括如下几个步骤:
步骤201,获取上传文件的数据区块。
在终端将文件上传至网络硬盘的过程中,终端将上传文件的数据以数据区块的形式发送给服务器。终端与服务器之间的一次会话可以传输一个数据区块。终端所发送的数据区块,需要经过网络设备,才能发送至服务器。在数据区块经过网络设备时,网络设备从数据区块中获取上传文件的数据。
对于一个需要上传的文件,终端可以用一个数据区块发送,也可以用多个数据区块发送。一个数据区块可以包括多个数据包。数据区块中包括上传文件的部分或全部文件数据。文件数据是指上传文件的文件内容,例如,上传文件是文本文件,则文件数据是文件中的文本数据;上传文件是视频文件,则文件数据是视频数据。
在一种可能的实施方式中,数据区块中还包括上传文件的文件信息。文件信息用于唯一指示一个上传文件。其中,文件信息可以是上传文件的文件名。考虑到不同上传文件可以拥有相同文件名的情况,文件信息还可以是文件名和上传标识的结合。上传标识用于指示终端本次的上传操作。网络设备可以通过文件信息中的上传标识区分不同终端上传的文件,或者,同一终端上传的不同文件。
示例性地,终端A和终端B同时通过同一个网络设备C上传文件。终端A上传的上传文件是一个视频文件,文件名称为“重要文件”。终端B上传的上传文件是一个音频文件,文件名称也为“重要文件”。那么,终端A和终端B的上传文件的文件名称相同。终端A上传的上传文件的文件信息为“重要文件-A1”,终端B上传的上传文件的文件信息为“重要文件-B1”。
对于上传文件的数据以多个数据区块上传的情况,终端通常有两种上传方式。第一种,终端根据数据区块中的数据在上传文件中的位置,按照位置的先后顺序上传数据区块。其中,数据区块中的数据在上传文件中的位置是指数据在文件中的字节位置。示例性地,上传文件a被终端分为了四个数据区块:a1,a2,a3和a4。每个数据区块中包括8192个字节的数据。a1中数据在a中的位置为第0到第8191字节,a2中数据在a中的位置为第8192到第16383个字节,a3中数据在a中的位置为第16384到第24574个字节,a1中数据在a中的位置为第24575到第32765个字节。那么,终端按照a1,a2,a3,a4的顺序发送4个数据区块。第二种,终端不按照位置的先后顺序上传数据区块,但在数据区块添加包中数据的位置信息。该位置信息用于指示数据在文件中的字节位置。例如,上传文件a被终端分为了四个数据区块:a1,a2,a3和a4。每个数据区块中包括8192个字节的数据。a1中数据在a中的位置为第0到第8191个字节,a2中数据在a中的位置为第8192到第16383个字节,a3中数据在a中的位置为第16384到第24574个字节,a1中数据在a中的位置为第24575到第32765个字节。那么,a1中的位置信息为第0个字节,a2中的位置信息为第8192个字节,a3中的位置信息为第16384个字节,a4中的位置信息为第24575个字节。因为,每个数据区块中数据的长度可以确定,所以根据包中数据的第一个字节在上传文件中的位置,即可确定包中其余数据的位置。
除了终端上传文件时发送的数据区块,终端连接外部网络时传输的数据都会经过网络设备。例如,终端访问网站时发送的超文本传输协议(Hypertext Transfer Protocol,HTTP)请求。因此,网络设备需要在终端连接外部网络时传输的大量数据中识别出上传文件的数据区块。网络设备识别出上传文件的数据区块后,获取数据区块中上传文件的文件信息和文件数据。对于经过网络设备的数据,终端可以根据数据中是否包括上传标识来确定是否为上传文件的数据;若有上传标识,则该数据所在的数据区块为上传文件的数据区块;若没有上传标识,则该数据所在的数据区块不是上传文件的数据区块。此外,终端和服务器之间采用不同的协议上传文件,如HTTP或文件传输协议(File Transfer Protocol,FTP),网络设备可以针对不同的协议采用不同的方式识别上传文件。网络设备针对不同的协议采用不同的方式识别上传文件为现阶段成熟技术,本申请实施例对此不再进行详细介绍。
步骤202,将文件数据划分为至少一个数据块。
网络设备在获取到文件数据后,需要将文件数据划分为至少一个数据块。其中,数据块的数据长度可以由技术人员预先设置,例如1兆字节(Megabyte,MB)。数据块的数据长度也可以由网络设备根据自身内存的最小的单位存储空间确定,例如最小的单位存储空间为512千字节(Kilobyte,KB),则数据块的数据长度为512KB。需要说明的是,每个数据块的数据长度相同,但当进行划分的数据的长度小于上述数据长度时,该数据块的数据长度为实际的数据长度。示例性地,上传文件b的文件数据是4.5MB的数据,将该文件数据划分为多个1MB的数据块。那么,最后一个数据块即第五个数据块的数据长度为0.5MB。
网络设备在划分数据块时,会计算每个数据块相对于文件数据的起始位置的偏移值。其中,文件数据的起始位置是指文件数据在上传文件中的第一个字节的位置。而数据块相对于上传文件的起始位置的偏移值,是指数据块中第一个字节数据在上传文件中的位置与上述起始位置之间的距离的值。
当上传文件的文件数据含在一个数据区块中时,网络设备可以确定文件数据的第一个字节,从而在划分数据块时根据数据块的数据长度,确定每个数据块的偏移值。例如,文件数据是4.5MB的数据,网络设备将其划分为4个1MB的数据块和一个0.5MB的数据块,则5个数据块的偏移值分别为0,1MB,2MB,3MB和4MB。
当上传文件的文件数据区块含在多个数据区块中时,网络设备通常有两种方式确定数据块的偏移值。
第一种,针对终端按照位置的先后顺序上传数据区块的情况,网络设备可以根据数据区块上传的顺序、数据区块中数据的长度、以及数据块的数据长度确定偏移值。例如,上传文件的文件数据是10MB的数据,并包含在两个数据区块中发送。每个数据区块包括5MB的文件数据。由于两个数据区块是顺序发送的,因此网络设备在接收第一个数据区块时,可以确定其中5MB的文件数据在上传文件中的位置是第0个字节到第5MB。那么,在将该数据区块中的数据划分为两个2.5MB的数据块时,网络设备可以确定第一个数据块的偏移值为0,第二个数据块的偏移值为2.5MB。同样地,对于第二个数据区块中的数据,网络设备可以确定其中5MB的文件数据在上传文件中的位置是第5MB到第10MB。那么,在将该数据区块中的数据划分为两个2.5MB的数据块时,网络设备可以确定第三个数据块的偏移值为5MB,第四个数据块的偏移值为7.5MB。
第二种,针对终端在数据区块添加包中数据的位置信息的情况,网络设备可以直接根据位置信息和数据库的数据长度确定偏移值。例如,上传文件的文件数据是10MB的数据,并包含在两个数据区块中发送。每个数据区块包括5MB的文件数据。由于两个数据区块添加有包中数据的位置信息,因此网络设备在接收第一个数据区块时,可以确定其中5MB的文件数据在上传文件中的位置是第0个字节到第5MB。那么,在将该数据区块中的数据划分为两个2.5MB的数据块时,网络设备可以确定第一个数据块的偏移值为0,第二个数据块的偏移值为2.5MB。同样地,对于第二个数据区块中的数据,网络设备可以确定其中5MB的文件数据在上传文件中的位置是第5MB到第10MB。那么,在将该数据区块中的数据划分为两个2.5MB的数据块时,网络设备可以确定第三个数据块的偏移值为5MB,第四个数据块的偏移值为7.5MB。
可选地,终端在划分完数据块后,将文件信息和数据块的偏移值携带在数据块中。
步骤203,当确定文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中。
在缓存文件数据划分的数据块时,网络设备不是将文件数据的所有数据块同时存入内存,而是网络设备每划分好一个数据块,就将该数据块以队列的形式进行缓存即存储至内存中。队列中的每一个元素即为一个数据块。对于一个上传文件的文件数据,网络设备将第一个划分出的第一个数据块作为队列的队头。此后,每划分好一个数据块,则将该数据块插入队列中。
需要说明的是,网络设备以队列的形式存储数据块时,并不是按照数据块在上传文件中的位置顺序插入队列的,而是按照划分数据块的顺序插入队列。示例性地,如图3所示,上传文件的文件数据30为4MB的数据,终端以两个数据区块301和302发送文件数据30。网络设备在划分数据块时,先将数据区块302中的数据划分为数据块3021和3022,再将数据区块301中的数据划分为数据块3011和3012。那么,网络设备最终存储的队列中数据块的顺序为3021,3022,3011,3012。
步骤204,读取队列中的数据块,并将读取的数据块写入磁盘中的备份文件。
当网络设备将上传文件的第一个数据块存至队列后,网络设备启动负责磁盘写入的进程。此时,网络设备通过该进程依次读取队列中的数据块,并将每次读取的数据块写入磁盘中的备份文件。备份文件是指上传文件在网络设备的磁盘中的复制文件。网络设备在读取数据块,并将数据块写入备份文件时,并不是等待上传文件的所有数据块都插入队列后再读取,而是只要部分数据块插入队列后即可读取。所以,当上述第一个数据块存储至队列后,网络设备即可启动上述进程,开始读取、写入。因此,网络设备在将数据块存储至内存的队列中时,也读取该队列中已经存储的数据库,即文件数据在内存中的存储和读取可以同时进行。网络设备无需等待文件数据全部存储至内存后再读取、写入。
该备份文件的文件名与上传文件的文件名相同。网络设备可以根据数据块中的文件信息,确定数据块需要写入的备份文件。
可选地,当第一个数据块存储至队列后,网络设备并不立即开始读取和写入,而是当队列中的数据块的数量大于预设数量时,再开始读取队列中的数据块,并将读取的数据块写入备份文件。其中,预设数量可以根据实际经验设定。
在一种可能的实施方式中,在将数据块写入磁盘前,网络设备先检查磁盘中是否有上传文件的备份文件。网络设备可以根据数据块中的文件信息,检测磁盘中是否有与上述备份文件。具体地,备份文件的文件名为上传文件的文件信息。因此,网络设备检测磁盘中是否有与备份文件,实际是检测磁盘中是否有文件名与数据块携带的文件信息系统的文件。若有,则确定该文件为上传文件的备份文件;若没有,则确定磁盘中没有上传文件的备份文件。当确定磁盘中没有上传文件的备份文件时,网络设备创建与以文件信息命名的备份文件。此时,该备份文件的内容为空。创建后,网络设备再写入数据块。当确定有上传文件的备份文件时,网络设备根据数据块的偏移值确定数据块在备份文件中的写入位置,并在该位置处写入该数据块。
示例性地,网络设备读取了队列中的一个数据块,该数据块的偏移值为512个字节。那么,网络设备确定该数据块的写入位置为位于离备份文件起始位置后的第512个字节,则网络设备从备份文件的第512个字节处开始写入该数据块。
队列是一种特殊的线性表,只允许在表的前端进行删除操作,而在表的后端进行插入操作。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(First In First Out,FIFO)线性表。因此,网络设备在读取队列中的数据块时,是按照数据块插入的顺序读取和写入的。
步骤205,删除已经读取的数据块。
在读取数据块,并写入备份文件的过程中,网络设备每在备份文件中写入一个数据块后,就将该数据块从队列中删除,释放相应的内存,避免已经写入的数据块占用内存,阻碍网络设备的其它进程使用内存。因此,内存中存储有数据块的队列始终是在动态变化中的,并且网络设备无需在内存中存储上传文件的所有文件数据。
在另一种实施例中,网络设备在获取到上传文件的数据区块后,根据上传文件的安全指数判断是否需要备份存储上传文件。上传文件的数据区块中还包括上传文件的安全指数,安全指数越高,则上传文件的安全级别越高;安全指数越低,则上传文件的安全级别越低。网络设备检测上传文件的安全指数是否大于预设阈值;若否,则确定无需备份存储上传文件;若是,则确定需要备份存储上传文件,并按照上述实施例所示的方法备份存储上传文件。其中,预设阈值可以根据实际经验设定。上传文件的安全指数可以由用户手动设定。若用户认为一个上传文件的内容十分重要,需要保证其安全性,则用户可以对其设定一个高于预设阈值的安全指数。那么,在上传该文件的时,网络设备会对其进行备份存储,确保其安全性。通过根据安全指数,选择性地备份存储上传文件,进一步地降低上传文件对内存的占用率,提高了内存的使用效率。
在本申请实施例中,将上传文件的文件数据划分为数据块,并将数据块以队列的形式存储在内存中。同时,利用队列先进先出的特性,在存储数据块的同时,读取队列中已经插入的数据块,并执行备份文件的写入和数据块删除。文件数据的存储、写入与删除同时进行,避免了有限的内存空间被长时间占用,能够提高内存的使用效率,进而提高网络设备的运行效率;而且,由于网络设备无需将文件数据全部存储至内存再进行写入操作,因此能够留存、备份数据量大的上传文件。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4是根据一示例性实施例示出的一种上传文件的存储装置的框图。该装置具有实现上述图2方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:数据获取模块401,数据划分模块402,数据存储模块403,数据写入模块404和数据删除模块405。
数据获取模块401,用于获取上传文件的数据区块,所述数据区块包括所述上传文件的文件数据。
数据划分模块402,用于将所述文件数据划分为至少一个数据块。
数据存储模块403,用于当确定所述文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中。
数据写入模块404,用于当将所述第一个数据块存储至所述队列后,依次读取所述队列中的数据块,并将读取的数据块写入磁盘中的备份文件,所述备份文件为所述上传文件的复制文件。
数据删除模块405,用于在所述队列中删除所述读取的数据块。
在本申请实施例提供的装置中,将上传文件的文件数据划分为数据块,并将数据块以队列的形式存储在内存中。同时,利用队列先进先出的特性,在存储数据块的同时,读取队列中已经插入的数据块,并执行备份文件的写入和数据块删除。文件数据的存储、写入与删除同时进行,避免了有限的内存空间被长时间占用,能够提高内存的使用效率,进而提高网络设备的运行效率;而且,由于网络设备无需将文件数据全部存储至内存再进行写入操作,因此能够留存、备份数据量大的上传文件。
可选地,所述数据区块还包括所述上传文件的文件信息,所述文件信息用于唯一指示一个上传文件,并且携带在所述队列的数据块中。数据写入模块404,还用于:根据所述文件信息,检测所述磁盘中是否存储有所述备份文件;若没有所述备份文件,则创建所述备份文件,所述备份文件的文件名为所述文件信息。
可选地,所述装置还包括:偏移确定模块。
所述偏移确定模块,用于:确定每个数据块相对于所述文件数据的起始位置的偏移值,所述文件数据的起始位置是指所述文件数据的在所述上传文件中的第一个字节的位置;将所述偏移值添加至对应的数据块中。
可选地,所述数据写入模块404,具体用于:根据所述读取的数据块的偏移值,确定所述读取的数据块在所述备份文件中的写入位置;在所述写入位置写入所述读取的数据块。
可选地,所述数据区块还包括所述上传文件的安全指数,所述安全指数表示所述上传文件的安全级别。所述装置还包括:安全监测模块,用于:当检测到所述安全指数大于预设阈值时,则确定无需备份存储所述上传文件;当检测到所述安全指数不大于所述预设阈值时,则确定需要备份存储所述上传文件。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的上传文件的存储方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种上传文件的存储方法,其特征在于,所述方法包括:
获取上传文件的数据区块,所述数据区块包括所述上传文件的文件数据;
将所述文件数据划分为至少一个数据块;
当确定所述文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中;
当将所述第一个数据块存储至所述队列后,依次读取所述队列中的数据块,并将读取的数据块写入磁盘中的备份文件,所述备份文件为所述上传文件的复制文件;
在所述队列中删除所述读取的数据块。
2.根据权利要求1所述的方法,其特征在于,所述数据区块还包括所述上传文件的文件信息,所述文件信息用于唯一指示一个上传文件,并且携带在所述队列的数据块中;
所述将读取的数据块写入磁盘中的备份文件之前,还包括:
根据所述文件信息,检测所述磁盘中是否存储有所述备份文件;
若没有所述备份文件,则创建所述备份文件,所述备份文件的文件名为所述文件信息。
3.根据权利要求1所述的方法,其特征在于,所述将所述文件数据划分为至少一个数据块之后,还包括:
确定每个数据块相对于所述文件数据的起始位置的偏移值,所述文件数据的起始位置是指所述文件数据的在所述上传文件中的第一个字节的位置;
将所述偏移值添加至对应的数据块中。
4.根据权利要求3所述的方法,其特征在于,所述将读取的数据块写入磁盘中的备份文件,包括:
根据所述读取的数据块的偏移值,确定所述读取的数据块在所述备份文件中的写入位置;
在所述写入位置写入所述读取的数据块。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述数据区块还包括所述上传文件的安全指数,所述安全指数表示所述上传文件的安全级别;
所述方法还包括:
当检测到所述安全指数大于预设阈值时,则确定无需备份存储所述上传文件;
当检测到所述安全指数不大于所述预设阈值时,则确定需要备份存储所述上传文件。
6.一种上传文件的存储装置,其特征在于,所述装置包括:
数据获取模块,用于获取上传文件的数据区块,所述数据区块包括所述上传文件的文件数据;
数据划分模块,用于将所述文件数据划分为至少一个数据块;
数据存储模块,用于当确定所述文件数据划分出的第一个数据块后,将划分出的数据块存储至内存的同一队列中;
数据写入模块,用于当将所述第一个数据块存储至所述队列后,依次读取所述队列中的数据块,并将读取的数据块写入磁盘中的备份文件,所述备份文件为所述上传文件的复制文件;
数据删除模块,用于在所述队列中删除所述读取的数据块。
7.根据权利要求6所述的装置,其特征在于,所述数据区块还包括所述上传文件的文件信息,所述文件信息用于唯一指示一个上传文件,并且携带在所述队列的数据块中;
数据写入模块,还用于:
根据所述文件信息,检测所述磁盘中是否存储有所述备份文件;
若没有所述备份文件,则创建所述备份文件,所述备份文件的文件名为所述文件信息。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
偏移确定模块,用于:
确定每个数据块相对于所述文件数据的起始位置的偏移值,所述文件数据的起始位置是指所述文件数据的在所述上传文件中的第一个字节的位置;
将所述偏移值添加至对应的数据块中。
9.根据权利要求8所述的装置,其特征在于,所述数据写入模块,具体用于:
根据所述读取的数据块的偏移值,确定所述读取的数据块在所述备份文件中的写入位置;
在所述写入位置写入所述读取的数据块。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述数据区块还包括所述上传文件的安全指数,所述安全指数表示所述上传文件的安全级别;
所述装置还包括:
安全监测模块,用于:
当检测到所述安全指数大于预设阈值时,则确定无需备份存储所述上传文件;当检测到所述安全指数不大于所述预设阈值时,则确定需要备份存储所述上传文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637629.1A CN109710194A (zh) | 2018-12-29 | 2018-12-29 | 上传文件的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637629.1A CN109710194A (zh) | 2018-12-29 | 2018-12-29 | 上传文件的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109710194A true CN109710194A (zh) | 2019-05-03 |
Family
ID=66259757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811637629.1A Pending CN109710194A (zh) | 2018-12-29 | 2018-12-29 | 上传文件的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710194A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202846A (zh) * | 2020-09-11 | 2021-01-08 | 广州宸祺出行科技有限公司 | 一种基于复杂网络架构的文件上传的方法及系统 |
CN113641304A (zh) * | 2021-07-05 | 2021-11-12 | 深圳市宏旺微电子有限公司 | 用于管理数据块的方法、装置、终端设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012793A (zh) * | 2010-11-12 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 镜像实现方法和装置 |
CN102708062A (zh) * | 2012-04-10 | 2012-10-03 | 深圳市佳信捷电子有限公司 | 基于数据块的多媒体存储方法和装置 |
US20140108721A1 (en) * | 2012-10-11 | 2014-04-17 | SK Hynix Inc. | Data storage device and operating method thereof |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务系统的数据访问/存储方法及装置 |
CN106155934A (zh) * | 2016-06-27 | 2016-11-23 | 华中科技大学 | 一种云环境下基于重复数据的缓存方法 |
CN107329695A (zh) * | 2017-06-22 | 2017-11-07 | 上海七牛信息技术有限公司 | 一种分布式存储内存管理方法、系统及计算机存储介质 |
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及系统 |
CN108415962A (zh) * | 2018-02-06 | 2018-08-17 | 国家电网公司 | 一种云存储系统 |
-
2018
- 2018-12-29 CN CN201811637629.1A patent/CN109710194A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012793A (zh) * | 2010-11-12 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 镜像实现方法和装置 |
CN102708062A (zh) * | 2012-04-10 | 2012-10-03 | 深圳市佳信捷电子有限公司 | 基于数据块的多媒体存储方法和装置 |
US20140108721A1 (en) * | 2012-10-11 | 2014-04-17 | SK Hynix Inc. | Data storage device and operating method thereof |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务系统的数据访问/存储方法及装置 |
CN106155934A (zh) * | 2016-06-27 | 2016-11-23 | 华中科技大学 | 一种云环境下基于重复数据的缓存方法 |
CN107329695A (zh) * | 2017-06-22 | 2017-11-07 | 上海七牛信息技术有限公司 | 一种分布式存储内存管理方法、系统及计算机存储介质 |
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及系统 |
CN108415962A (zh) * | 2018-02-06 | 2018-08-17 | 国家电网公司 | 一种云存储系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202846A (zh) * | 2020-09-11 | 2021-01-08 | 广州宸祺出行科技有限公司 | 一种基于复杂网络架构的文件上传的方法及系统 |
CN112202846B (zh) * | 2020-09-11 | 2023-09-29 | 广州宸祺出行科技有限公司 | 一种基于复杂网络架构的文件上传的方法及系统 |
CN113641304A (zh) * | 2021-07-05 | 2021-11-12 | 深圳市宏旺微电子有限公司 | 用于管理数据块的方法、装置、终端设备及存储介质 |
CN113641304B (zh) * | 2021-07-05 | 2023-10-20 | 深圳市宏旺微电子有限公司 | 用于管理数据块的方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795812B1 (en) | Virtual copy forward method and system for garbage collection in cloud computing networks | |
CN104932841B (zh) | 一种云存储系统中节约型重复数据删除方法 | |
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
US9110909B2 (en) | File level hierarchical storage management system, method, and apparatus | |
JP4249267B2 (ja) | ファイル・システムにおけるディスク・スペースの解放 | |
CN103179185B (zh) | 一种分布式文件系统客户端缓存中文件创建方法及其系统 | |
US8560786B2 (en) | Efficient use of memory and accessing of stored records | |
CN108647151A (zh) | 一种全闪系统元数据落盘方法、装置、设备及存储介质 | |
EP2234018A1 (en) | Methods and apparatus for backup and restore of thin provisioning volume | |
US9189494B2 (en) | Object file system | |
CN104679665A (zh) | 一种实现分布式文件系统块存储的方法及系统 | |
CN108776682B (zh) | 基于对象存储的随机读写对象的方法和系统 | |
KR20070045326A (ko) | 데이터의 유틸리티를 기반으로 하여 데이터 저장장소로부터 데이터를 선택하는 시스템 | |
CN103999058A (zh) | 带驱动器系统服务器 | |
CN103917962A (zh) | 读取存储在存储系统上的文件 | |
CA2633350A1 (en) | Permanent storage appliance | |
CN102821111A (zh) | 文件云存储实时同步方法 | |
CN107885616A (zh) | 一种基于文件系统解析的海量小文件备份恢复方法 | |
CN109918352B (zh) | 存储器系统和存储数据的方法 | |
CN109710185A (zh) | 数据处理方法及装置 | |
CN109189772A (zh) | 用于无文件系统存储介质的文件管理方法及系统 | |
CN109753360A (zh) | 面向电力系统中边缘节点的轻量级数据管理系统及方法 | |
CN108287869A (zh) | 一种基于快速存储设备的海量小文件解决方法 | |
CN108614837A (zh) | 文件存储和检索的方法及装置 | |
CN109710194A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190503 |
|
RJ01 | Rejection of invention patent application after publication |