CN105279258B - 一种均衡分布的文件存储方法及系统 - Google Patents

一种均衡分布的文件存储方法及系统 Download PDF

Info

Publication number
CN105279258B
CN105279258B CN201510682385.9A CN201510682385A CN105279258B CN 105279258 B CN105279258 B CN 105279258B CN 201510682385 A CN201510682385 A CN 201510682385A CN 105279258 B CN105279258 B CN 105279258B
Authority
CN
China
Prior art keywords
storage
name
directory
target file
file
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
CN201510682385.9A
Other languages
English (en)
Other versions
CN105279258A (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.)
TCL Corp
Original Assignee
TCL 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 TCL Corp filed Critical TCL Corp
Priority to CN201510682385.9A priority Critical patent/CN105279258B/zh
Publication of CN105279258A publication Critical patent/CN105279258A/zh
Application granted granted Critical
Publication of CN105279258B publication Critical patent/CN105279258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种均衡分布的文件存储方法及系统。方法包括步骤:A、根据上传的目标文件的文件信息、以及上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;B、对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。通过本发明可将上传的文件均匀地分布在存储目录下,且不会错误地覆盖其他现有的文件。同时还能提供方便快速的文件访问。

Description

一种均衡分布的文件存储方法及系统
技术领域
本发明涉及数据存储领域,尤其涉及一种均衡分布的文件存储方法及系统。
背景技术
随着大数据时代的到来,所需处理的数据量越来越大,文件存储系统在云存储领域得到越来越大的应用。由于互联网用户基数越来越大,单系统需要支持的用户应用需求越来越多,从而导致系统磁盘单目录下的存储的文件也越来越多。如果在单目录下存放大量文件,那么在进行目录项的遍历时搜索文件将非常繁琐,导致性能降低。另外Linux的ext3文件系统(第三代扩展文件系统)单目录下能够存放的文件数默认不越过3.2万个。而实际上,为了安全考虑,一般单目录都不建议存储如此多的文件。而如果在多目录下存储用户上传的文件,则会出现文件访问效率低、以及容易覆盖现有文件的问题。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种均衡分布的文件存储方法及系统,旨在解决现有的多目录文件存储方式访问效率低、容易覆盖现有文件的问题。
本发明的技术方案如下:
一种均衡分布的文件存储方法,包括步骤:
A、根据上传的目标文件的文件信息、以及上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;
B、对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
在一实施例中,所述文件信息包括目标文件的原始名称、字节长度及CRC32值。所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
在一实施例中,所述步骤B具体包括:
对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
在一实施例中,所述步骤B之后还包括:
C、建立一个目标文件的所述原始名称与生成的所述存储名称的映射表。
在一实施例中,所述步骤A之前包括:
预先建立所述存储目录,所述存储目录的所述目录名称以多个字符命名。
一种均衡分布的文件存储系统,包括:
存储名称生成模块,用于根据上传的目标文件的文件信息、上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;存储模块,用于对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
在一实施例中,所述文件信息包括所述目标文件的原始名称、字节长度及CRC32值;所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
在一实施例中,所述存储模块包括:
md5运算单元,用于对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
在一实施例中,均衡分布的文件存储系统,还包括:
映射表建立模块,用于建立一个所述目标文件的所述原始名称与生成的所述存储名称的映射表。
有益效果:本发明根据一些目标文件以及其他特有的信息生成唯一的存储名称,并且对存储名称进行加密处理得到加密值,截取加密值前面的一部分作为所属存储目录的目录名称,将上传的文件均匀地分布在存储目录下,且不会错误地覆盖其他现有的文件。同时还能提供方便快速的文件访问。
附图说明
图1为本发明一种均衡分布的文件存储方法较佳实施例的流程图。
图2为本发明一种均衡分布的文件存储系统较佳实施例的结构框图。
具体实施方式
本发明提供一种均衡分布的文件存储方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种均衡分布的文件存储方法较佳实施例的流程图,如图所示,其包括步骤:
S101、根据上传的目标文件的文件信息、上传信息组织成编码,然后以所述编码生成目标文件在服务器的唯一的存储名称;
S102、对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将目标文件存储于相应存储目录下。
其中上述目标文件的文件信息包括原始名称、字节长度及CRC32值。其中的字节长度是指目标文件内容大小,保留字节长度和CRC32值可以方便目标文件上传完成后对文件完整性进行检测,以避免在网络传输和实际的硬盘存储过程中出现问题。其中,上传信息包括目标文件的上传时间和服务器维护的计数器上对目标文件的计数,目标文件的上传时间是指上传目标文件时服务器当前的unix时间戳。服务器维护的计数器上对目标文件的计数则是指每接收到一个上传的目标文件,则所述服务器维护的计数器加1。通过这些特有的信息就能确保存储名称的唯一性。在进行编码时,可采用base64的编码,其是用于传输8bit字节代码的编码方式之一。然后以上述编码生成目标文件在服务器上的存储名称(即直接将所述编码作为存储名称),该存储名称在服务器上是唯一的,确保不会出现在上传时现有文件被覆盖的情况。
然后对存储名称进行在线加密得到加密值,截取其中的一部分字符作为其所属存储目录的目录名称。由于哈希具有很好的负载均衡性,可以将生成的唯一文件名(即前面的存储名称),进行md5计算(信息摘要算法,其可将数据运算为另一固定长度值,即md5值),然后截取md5值的前面一部分字符,以其作为其所属存储目录的目录名称。另外还可截取不同部分分别作为各级目录的名称,从而可以构建得到二级目录(即二级存储目录)或三级目录(即三级存储目录)或更多级的目录,并将目标文件存放于对应的目录下。
选择字符的方式可以是一级目录选择头N个字符作为目录名称,二级目录选择紧接着后面的N个字符作为目录名称,依次类推,其中的N可以是1或2或3或者4等等。举例来说,可以根据文件存储系统中所用磁盘的容量大小来确定构造几级目录。由于md5值是长度为32个字符的十六进制数,如82bdc4a5890adc59cec82cb60f8af692,那么构造二级目录时,假设选取2个字符作为每一级目录的目录名称,即取出最前面的4个字符,即82和bd,82作为一级目录的目录名称,bd作为二级目录的目录名称,每个字符都有16个取值,这样的话,每一级目录有16*16=256个,总共有256 * 256=65536个目录,如果每个目录下面存放2000个文件,每个文件30KB,就可以有3992G,即4TB左右的容量;而假设选取3个字符作为每一级目录的目录名称,即82b作为一级目录,dc4作为二级目录,那每一级目录就有16*16*16=4096个,总共会有4096 * 4096 =16777216个,该数量过大,所以通常情况下,本发明优先选择2个字符作为每一级目录的目录名称即可。
而各级目录可以在系统第一次初始化时就创建完成,即在步骤S101之前包括:预先建立用于存储目标文件的存储目录,所述存储目录的目录名称以多个字符命名。因为如上所述的目录名称创建方法,各级目录的名称是确定的,所以可以预先创建好所有的存储目录,这样上传文件时只要得到上传文件存储名称的md5值后,就可以知道要存储到哪个目录下,而不用在每次确定各文件所属存储目录的名称之后,再去创建,避免影响存储效率。本发明可使用一个专门的目录来作为存储根目录,然后在该存储根目录下面建立其他的各级目录。
进一步,所述步骤S102之后还包括:
S103、建立一个目标文件的原始名称与生成的存储名称的映射表。
由于上传目标文件时,为避免同已存在的文件产生覆盖,分配了一个唯一的存储名称,为后续用户方便且准确地访问文件,此步骤建立一个目标文件的原始名称与分配的唯一的存储名称(包括存储目录)的映射表。这样,在访问定位文件时,只需查询映射表即可方便且快速地访问文件。
基于上述方法,本发明还提供一种均衡分布的文件存储系统较佳实施例的结构框图,如图2所示,其包括:
存储名称生成模块100,用于根据上传的目标文件的文件信息、上传信息组织成编码,然后以所述编码生成目标文件在服务器的唯一的存储名称;
存储模块200,用于对所述存储名称进行在线加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将目标文件存储于相应存储目录下。
进一步,所述文件信息包括目标文件的原始名称、字节长度及CRC32值。上传信息包括目标文件的上传时间和服务器维护的计数器对目标文件的计数。所述存储名称生成模块100中,每接收到一个上传的目标文件,则所述服务器维护的计数器加1。
进一步,所述存储模块200包括:
md5运算单元,用于对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为存储目录的目录名称。
进一步,系统还包括:
映射表建立模块,用于建立一个目标文件的原始名称与生成的存储名称的映射表。
综上所述,本发明根据一些特有的信息生成唯一的存储名称,并且对存储名称进行加密处理得到加密值,截取加密值前面的一部分作为所属存储目录的目录名称,将上传的文件均匀地分布在存储目录下,且不会错误地覆盖其他现有的文件。同时还能提供方便快速的文件访问。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (9)

1.一种均衡分布的文件存储方法,其特征在于,包括步骤:
A、根据上传的目标文件的文件信息、以及上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;所述文件信息包括目标文件的原始名称、字节长度及CRC32值;所述上传信息包括目标文件的上传时间和服务器维护的计数器上对目标文件的计数;
B、对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
2.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,
所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
3.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述步骤B具体包括:对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
4.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述步骤B之后还包括:
C、建立一个目标文件的所述原始名称与生成的所述存储名称的映射表。
5.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述步骤A之前包括:预先建立所述存储目录,所述存储目录的所述目录名称以多个字符命名。
6.一种均衡分布的文件存储系统,其特征在于,包括:
存储名称生成模块,用于根据上传的目标文件的文件信息、上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;所述文件信息包括所述目标文件的原始名称、字节长度及CRC32值;所述上传信息包括目标文件的上传时间和服务器维护的计数器上对目标文件的计数;
存储模块,用于对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
7.根据权利要求6所述的均衡分布的文件存储系统,其特征在于,所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
8.根据权利要求6所述的均衡分布的文件存储系统,其特征在于,所述存储模块包括:
md5运算单元,用于对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
9.根据权利要求6所述的均衡分布的文件存储系统,其特征在于,还包括:
映射表建立模块,用于建立一个所述目标文件的所述原始名称与生成的所述存储名称的映射表。
CN201510682385.9A 2015-10-21 2015-10-21 一种均衡分布的文件存储方法及系统 Active CN105279258B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510682385.9A CN105279258B (zh) 2015-10-21 2015-10-21 一种均衡分布的文件存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510682385.9A CN105279258B (zh) 2015-10-21 2015-10-21 一种均衡分布的文件存储方法及系统

Publications (2)

Publication Number Publication Date
CN105279258A CN105279258A (zh) 2016-01-27
CN105279258B true CN105279258B (zh) 2020-01-14

Family

ID=55148272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510682385.9A Active CN105279258B (zh) 2015-10-21 2015-10-21 一种均衡分布的文件存储方法及系统

Country Status (1)

Country Link
CN (1) CN105279258B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446001B (zh) * 2016-07-29 2019-10-18 北京北信源软件股份有限公司 一种在计算机存储介质上存储文件的方法及系统
CN107239522A (zh) * 2017-05-26 2017-10-10 努比亚技术有限公司 图片存储方法、设备和计算机存储介质
CN108038382A (zh) * 2017-10-18 2018-05-15 北京丁牛科技有限公司 基于cpu-gpu架构的彩虹链表的处理方法及系统
CN109101640A (zh) * 2018-08-21 2018-12-28 赛凡信息科技(厦门)有限公司 一种对象数据在文件系统中的分布方案
CN111666257B (zh) * 2020-06-03 2024-03-19 中国建设银行股份有限公司 一种文件分片存储的方法、装置、设备和存储介质
CN112199327A (zh) * 2020-08-24 2021-01-08 杭州雷数科技有限公司 用于处理文件的服务方法、系统、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719141A (zh) * 2009-12-24 2010-06-02 成都市华为赛门铁克科技有限公司 基于目录对象的文件处理方法和系统
CN103384256A (zh) * 2012-05-02 2013-11-06 天津书生投资有限公司 一种云存储方法及装置
CN104239376A (zh) * 2013-11-07 2014-12-24 新华瑞德(北京)网络科技有限公司 数据存储方法和装置
CN104573518A (zh) * 2015-01-23 2015-04-29 百度在线网络技术(北京)有限公司 文件扫描方法、装置、服务器及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235589B2 (en) * 2011-12-13 2016-01-12 International Business Machines Corporation Optimizing storage allocation in a virtual desktop environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719141A (zh) * 2009-12-24 2010-06-02 成都市华为赛门铁克科技有限公司 基于目录对象的文件处理方法和系统
CN103384256A (zh) * 2012-05-02 2013-11-06 天津书生投资有限公司 一种云存储方法及装置
CN104239376A (zh) * 2013-11-07 2014-12-24 新华瑞德(北京)网络科技有限公司 数据存储方法和装置
CN104573518A (zh) * 2015-01-23 2015-04-29 百度在线网络技术(北京)有限公司 文件扫描方法、装置、服务器及系统

Also Published As

Publication number Publication date
CN105279258A (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
CN105279258B (zh) 一种均衡分布的文件存储方法及系统
US10893032B2 (en) Encryption key management system for cloud services
CN110489059B (zh) 数据集群存储的方法、装置及计算机设备
US9253171B2 (en) Distributed network encryption key generation
CN102857578B (zh) 一种网络硬盘的文件上传方法、系统及网盘客户端
WO2021068351A1 (zh) 基于云存储的数据传输方法、装置及计算机设备
US9641598B1 (en) Contextually unique identifier generation service
CN110413595B (zh) 一种应用于分布式数据库的数据迁移方法和相关装置
US10862672B2 (en) Witness blocks in blockchain applications
US9762384B2 (en) Generation and verification of alternate data having specific format
CN107181591B (zh) 用于系统密码生成的方法与设备
CN113221155B (zh) 一种多层级与多等级加密的云储存系统
CN105721532A (zh) 一种节点管理方法及装置
WO2020001488A1 (zh) 文件下载方法及装置、客户端和计算机可读存储介质
CN108874803A (zh) 数据存储方法、装置及存储介质
CN115225409B (zh) 基于多备份联合验证的云数据安全去重方法
US20160142486A1 (en) Data-access system and method for storing data and reading data
CN104182418A (zh) 节点元数据获取方法与装置
CN104765807A (zh) 一种分布式文件系统的拟态防窃取方法
CN111447265A (zh) 文件存储方法、文件下载方法和文件处理方法及相关组件
CN104010016A (zh) 数据管理方法、云端服务器及终端设备
KR20140104796A (ko) 스토리지 서비스 이용에 따른 사용자 부인방지 및 데이터 무결성 검증 방법
EP3579526B1 (en) Resource file feedback method and apparatus
CN113300875A (zh) 回源数据校验方法、服务器、系统及存储介质
Kirubakaran et al. A cloud based model for deduplication of large data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant