CN105279258A - 一种均衡分布的文件存储方法及系统 - Google Patents
一种均衡分布的文件存储方法及系统 Download PDFInfo
- Publication number
- CN105279258A CN105279258A CN201510682385.9A CN201510682385A CN105279258A CN 105279258 A CN105279258 A CN 105279258A CN 201510682385 A CN201510682385 A CN 201510682385A CN 105279258 A CN105279258 A CN 105279258A
- Authority
- CN
- China
- Prior art keywords
- file destination
- file
- directory
- name
- mass distribution
- 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.)
- Granted
Links
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/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision 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 (10)
1.一种均衡分布的文件存储方法,其特征在于,包括步骤:
A、根据上传的目标文件的文件信息、以及上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;
B、对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
2.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述文件信息包括目标文件的原始名称、字节长度及CRC32值。
3.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,
所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
4.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述步骤B具体包括:
对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
5.根据权利要求2所述的均衡分布的文件存储方法,其特征在于,所述步骤B之后还包括:
C、建立一个目标文件的所述原始名称与生成的所述存储名称的映射表。
6.根据权利要求1所述的均衡分布的文件存储方法,其特征在于,所述步骤A之前包括:
预先建立所述存储目录,所述存储目录的所述目录名称以多个字符命名。
7.一种均衡分布的文件存储系统,其特征在于,包括:
存储名称生成模块,用于根据上传的目标文件的文件信息、上传信息组织成编码,然后以所述编码生成所述目标文件在服务器的唯一的存储名称;
存储模块,用于对所述存储名称进行加密生成加密值,截取所述加密值的一部分字符作为其所属存储目录的目录名称,根据所述目录名称将所述目标文件存储于相应所述存储目录下。
8.根据权利要求7所述的均衡分布的文件存储系统,其特征在于,所述文件信息包括所述目标文件的原始名称、字节长度及CRC32值;
所述上传信息包括所述目标文件的上传时间和所述目标文件的计数;其中,每接收到一个上传的所述目标文件,所述服务器维护的计数器加1。
9.根据权利要求7所述的均衡分布的文件存储系统,其特征在于,所述存储模块包括:
md5运算单元,用于对所述存储名称进行md5运算,截取所得md5值的前面一部分字符,作为所述存储目录的所述目录名称。
10.根据权利要求8所述的均衡分布的文件存储系统,其特征在于,还包括:
映射表建立模块,用于建立一个所述目标文件的所述原始名称与生成的所述存储名称的映射表。
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 true CN105279258A (zh) | 2016-01-27 |
CN105279258B 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446001A (zh) * | 2016-07-29 | 2017-02-22 | 北京北信源软件股份有限公司 | 一种在计算机存储介质上存储文件的方法及系统 |
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 | 赛凡信息科技(厦门)有限公司 | 一种对象数据在文件系统中的分布方案 |
CN111666257A (zh) * | 2020-06-03 | 2020-09-15 | 中国建设银行股份有限公司 | 一种文件分片存储的方法、装置、设备和存储介质 |
CN112199327A (zh) * | 2020-08-24 | 2021-01-08 | 杭州雷数科技有限公司 | 用于处理文件的服务方法、系统、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
US20130152085A1 (en) * | 2011-12-13 | 2013-06-13 | International Business Machines Corporation | Optimizing Storage Allocation in a Virtual Desktop Environment |
CN103384256A (zh) * | 2012-05-02 | 2013-11-06 | 天津书生投资有限公司 | 一种云存储方法及装置 |
CN104239376A (zh) * | 2013-11-07 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 数据存储方法和装置 |
CN104573518A (zh) * | 2015-01-23 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 文件扫描方法、装置、服务器及系统 |
-
2015
- 2015-10-21 CN CN201510682385.9A patent/CN105279258B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
US20130152085A1 (en) * | 2011-12-13 | 2013-06-13 | International Business Machines Corporation | Optimizing Storage Allocation in a Virtual Desktop Environment |
CN103384256A (zh) * | 2012-05-02 | 2013-11-06 | 天津书生投资有限公司 | 一种云存储方法及装置 |
CN104239376A (zh) * | 2013-11-07 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 数据存储方法和装置 |
CN104573518A (zh) * | 2015-01-23 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 文件扫描方法、装置、服务器及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446001A (zh) * | 2016-07-29 | 2017-02-22 | 北京北信源软件股份有限公司 | 一种在计算机存储介质上存储文件的方法及系统 |
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 | 赛凡信息科技(厦门)有限公司 | 一种对象数据在文件系统中的分布方案 |
CN111666257A (zh) * | 2020-06-03 | 2020-09-15 | 中国建设银行股份有限公司 | 一种文件分片存储的方法、装置、设备和存储介质 |
CN111666257B (zh) * | 2020-06-03 | 2024-03-19 | 中国建设银行股份有限公司 | 一种文件分片存储的方法、装置、设备和存储介质 |
CN112199327A (zh) * | 2020-08-24 | 2021-01-08 | 杭州雷数科技有限公司 | 用于处理文件的服务方法、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105279258B (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105279258A (zh) | 一种均衡分布的文件存储方法及系统 | |
US10474631B2 (en) | Method and apparatus for content derived data placement in memory | |
CA2766231C (en) | Namespace file system accessing an object store | |
US9811546B1 (en) | Storing data and metadata in respective virtual shards on sharded storage systems | |
CN111008185B (zh) | 一种数据共享方法、系统及设备 | |
US10353884B2 (en) | Two-stage front end for extent map database | |
CN103327052B (zh) | 数据存储方法和系统以及数据访问方法和系统 | |
CN103246700B (zh) | 基于HBase的海量小文件低延时存储方法 | |
JP2012531675A5 (zh) | ||
EP2631805A1 (en) | Storage-service-provision device, system, service-provision method, and service-provision program | |
CN105468642A (zh) | 数据的存储方法及装置 | |
CN111078653A (zh) | 一种数据存储方法、系统及设备 | |
CN111045857A (zh) | 数据备份和恢复的方法、电子设备和计算机可读存储介质 | |
KR102452250B1 (ko) | 오프체인 데이터 저장 방법 및 장치 | |
CN112817538B (zh) | 数据处理的方法、装置、设备和存储介质 | |
CN102904931A (zh) | 一种图片存储与读取方法 | |
US12093316B2 (en) | Partial file system instances | |
US9020902B1 (en) | Reducing head and tail duplication in stored data | |
US9626378B2 (en) | Method for handling requests in a storage system and a storage node for a storage system | |
JP6113816B1 (ja) | 情報処理システム、情報処理装置、及びプログラム | |
CN105549912A (zh) | 同时包含多种类操作系统的服务器集群的存储方法 | |
CN104378431A (zh) | 一种适用于云存储系统的元数据分布式存储方法 | |
US20130218851A1 (en) | Storage system, data management device, method and program | |
CN103001774B (zh) | 一种管理集装文件的方法和装置 | |
US9176967B2 (en) | File load balancing in an N-level directory tree of a data storage system |
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 |