CN105763604B - 轻量级分布式文件系统及恢复下载文件原名的方法 - Google Patents
轻量级分布式文件系统及恢复下载文件原名的方法 Download PDFInfo
- Publication number
- CN105763604B CN105763604B CN201610078169.8A CN201610078169A CN105763604B CN 105763604 B CN105763604 B CN 105763604B CN 201610078169 A CN201610078169 A CN 201610078169A CN 105763604 B CN105763604 B CN 105763604B
- Authority
- CN
- China
- Prior art keywords
- file
- server
- name
- client
- web server
- 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
Classifications
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- 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]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
本发明涉及分布式文件系统,提供了提供一种轻量级分布式文件系统及恢复下载文件原名的方法,解决轻量级分布式文件系统不支持用户原文件名下载的问题。系统包括跟踪服务器、存储服务器、WEB服务器、客户端;当客户端上传文件时,存储服务器会将文件分配到一个数据存储目录,并且生成一个文件ID,然后将文件以文件ID命名存储在该目录的子目录下,将文件ID返回给客户端,客户端将原文件名和系统生成的文件ID的对应关系保存到关系型数据库中;当客户端下载文件时,WEB服务器设置在输出的页面中使用指定的链接进行文件下载,其中所述指定的链接用存储服务器的域名和系统返回的文件ID拼接而成。本发明适用于轻量级分布式文件系统。
Description
技术领域
本发明涉及分布式文件系统,特别涉及轻量级分布式文件系统及恢复下载文件原名的方法。
背景技术
如今,人类已经步入信息化的时代,各行各业产生的数据信息总量正在呈现爆炸式地增长,数据越庞大,我们就需要更多的存储空间,此时如果继续用传统的存储方式是不太现实的,而且成本非常高。因此如何用普通的硬件来实现海量数据的存储,逐渐成为热点课题,轻量级分布式文件系统(FastDFS)也就应运而生。所谓的分布式文件系统,是一种允许文件通过网络在多台主机上分享的文件系统,可以让多台机器上的多用户分享文件和存储空间。它最大的一个特性叫做通透性,在分布式文件系统中,我们访问文件上的数据实际上是通过网络来实现的,但是在用户看来,它跟访问本地磁盘文件是一样的。FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。和现有的类Google FS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。FastDFS不对文件进行分块存储,与支持文件分块存储的DFS相比,更加简洁高效,并且完全能满足绝大多数互联网应用的实际需要。FastDFS非常适合存储海量的小文件,但是由于它本身的机制,它的文件名是存储成功以后根据存储位置生成的一个文件ID,不能支持用户原文件名。通过文件ID,我们可以反解出如下几个字段:文件创建时间、文件大小、上传到源存储服务器的ip地址、文件crc32校验码以及用于避免文件重名的随机数等。但是在我们的实际运用中,很多应用场景要求使用原文件名。使用http下载时如果不加处理,显示给用户的文件名会是文件ID,这个文件ID对用户来说没有任何意义,严重影响到用户体验,所以需要系统自己想办法恢复原始文件名。
发明内容
本发明要解决的技术问题是:提供一种轻量级分布式文件系统及恢复下载文件原名的方法,解决轻量级分布式文件系统不支持用户原文件名下载的问题。
为解决上述问题,本发明采用的技术方案是:包括跟踪服务器、存储服务器、WEB服务器、客户端;所述WEB服务器用于提供下载服务;WEB服务器还用以控制用户请求所得的内容存为一个文件时能提供一个默认的文件名,且文件在访问时弹出文件下载的对话框;
当客户端上传文件时,存储服务器会将文件分配到一个数据存储目录,并且生成一个文件ID,然后将文件以文件ID命名存储在该目录的子目录下,将文件ID返回给客户端,客户端将原文件名和系统生成的文件ID的对应关系保存到关系型数据库中;
当客户端下载文件时,所述WEB服务器,通过服务器语言,设置在输出的页面中使用指定的链接进行文件下载,其中,所述指定的链接由WEB服务器的域名和系统返回的文件ID拼接而成。
进一步的,所述关系型数据库为Mysql数据库。
进一步的,所述WEB服务器为nginx服务器。
基于上述轻量级分布式文件系统的恢复下载文件原名的方法,包括如下步骤:
a.用WEB服务器的域名和文件ID,拼出WEB服务器指定的下载链接;
b.从关系型数据库中得到原文件名和文件ID的对应关系,将原文件名作为请求参数变量带在下载链接中;
c.在WEB服务器端,利用请求的取值变量得到请求参数变量值作为键值,并加入到http响应头,从而重写响应头;
d.利用重写过响应头的链接通过浏览器去访问文件,弹出文件下载的对话框,对话框中的文件名即是指定链接的请求参数变量,也就是原文件名;
e.将请求发给正常工作的跟踪服务器,跟踪服务器解析请求,得到文件名中包含的存储文件信息,然后为该请求选择一个合适的存储服务器读请求,找到该文件并返回给客户端。
本发明的有益效果是:通过利用关系型数据库来存储原文件名和系统生成的文件ID之间的映射关系以及用WEB服务器来提供下载服务,为用户返回以原文件名命名的文件,解决FastDFS不支持用户原文件名下载的问题,提高了用户体验的目的。
具体实施方式
本发明的轻量级分布式文化系统,包含服务器和客户端。服务器又主要包括:tracker server(跟踪服务器)和storage serever(储存服务器),其中tracker server,包括一台或者多台服务器,相互独立,主要起调度作用,其中多台之间是对等关系;storageserever,主要作用是提供存储容量,起到存储和备份的作用,所有的服务器以group为单位,每个group内包含多个存储服务器,数据互相备份。客户端,是用户的操作入口,主要用于进行文件的上传、下载等操作。
关系型数据库,主要用来存储原文件名和系统生成的文件ID之间的映射关系,所述的关系型数据库采用Mysql数据库。
WEB服务器,主要用于提供下载服务,所述的WEB服务器采用nginx服务器。
本发明首先布置轻量级分布式文件系统,系统包含服务器和客户端,然后在客户端增加一个关系型数据库,在服务器增加WEB服务器。当用户需要上传文件时,首先由客户端可以选择某一台正常工作的tracker server,发起上传请求;tracker server在收到上传文件请求时,会为该文件分配一个可以存储文件的group。当选定group后,trackerserver会在group内选择一个storage serever,返回可用的storage serever的ip地址和端口信息到客户端;客户端上传文件到storage serever,storage serever会将文件分配到一个数据存储目录,并且生成一个文件ID,然后将文件以文件ID命名存储在该目录的子目录下,将文件ID返回给客户端,然后客户端将自定义的文件名和系统生成的文件ID的对应关系保存到数据库中,整个上传操作完成。
实施例具体方法步骤如下:
第一步,部署分布式文件系统的server端,server端包括tracker server和storage serever。
步骤1.1,部署tracker server,主要做调度工作,起到均衡的作用,包含一台到多台,多台之间是对等关系。
步骤1.2,部署storage serever,主要提供存储容量,起到存储和备份的作用,所有的服务器以group为单位,每个group内包含多个存储服务器,数据互相备份。
第二步,部署分布式文件系统的客户端,主要用于进行文件的上传、下载等操作。
第三步,在客户端增加一个关系型数据库,主要用来存储原文件名和系统生成的文件ID之间的映射关系,所述的关系型数据库采用Mysql数据库。
第四步,在分布式文件系统上部署WEB服务器,主要用于提供下载服务,所述的WEB服务器采用nginx服务器。
第五步,在WEB服务器端,通过服务器语言,设置在输出的页面中使用指定的链接进行文件下载。
所述的指定的链接用服务器的域名和系统返回的文件ID拼接而成。
第六步,在WEB服务器端,设置内容属性,用以控制用户请求所得的内容存为一个文件时能提供一个默认的文件名,且文件在访问时弹出文件下载的对话框。
第七步,用户通过客户端,将文件上传到分布式文件系统,具体包括以下具体步骤:
步骤7.1,客户端可以选择某一台正常工作的tracker server,发起上传请求。
步骤7.2,分布式文件系统的tracker server在收到上传文件请求时,会为该文件分配一个可以存储文件的group。当选定group后,tracker server会在group内选择一个storage serever,返回可用的storage serever的ip地址和端口信息到客户端。
步骤7.3,客户端上传文件到分布式文件系统,storage serever会将文件分配到一个数据存储目录,并且生成一个文件ID,然后将文件以文件ID命名存储在该目录的子目录下,将文件ID返回给客户端。
步骤7.4,客户端将自定义的文件名和系统生成的文件ID的对应关系保存到数据库中。
步骤7.5,整个上传操作完成。
第八步,当用户需要下载文件时,可以通过客户端下载文件,具体包括以下步骤:
步骤8.1,点击下载时,用WEB服务器的域名和文件ID,拼出WEB服务器指定的下载链接。
步骤8.2,从关系型数据库中得到原文件名和文件ID的对应关系,将原文件名作为请求参数变量带在下载链接中。
步骤8.3,在WEB服务器端,利用get请求的取值变量得到请求参数变量值作为键值,并加入到http响应头,从而重写响应头。
步骤8.4,利用重写过响应头的的链接通过浏览器去访问文件,弹出文件下载的对话框,对话框中的文件名即是指定链接的请求参数变量,也就是原文件名。
步骤8.5,将请求发给任意的正常工作的tracker server。
步骤8.6,tracker server解析请求,得到文件名中包含的存储文件信息,然后为该请求选择一个合适的storage serever读请求,找到该文件并返回给客户端。
步骤8.7,下载完成,用户就能得到原文件名的文件。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (4)
1.轻量级分布式文件系统,包括跟踪服务器、存储服务器、WEB服务器、客户端;所述WEB服务器用于提供下载服务;其特征在于,WEB服务器还用以控制用户请求所得的内容存为一个文件时能提供一个默认的文件名,且文件在访问时弹出文件下载的对话框;
当客户端上传文件时,存储服务器会将文件分配到一个数据存储目录,并且生成一个文件ID,然后将文件以文件ID命名存储在该目录的子目录下,将文件ID返回给客户端,客户端将原文件名和系统生成的文件ID的对应关系保存到关系型数据库中;
当客户端下载文件时,所述WEB服务器,通过服务器语言,设置在输出的页面中使用指定的链接进行文件下载,其中,所述指定的链接由WEB服务器的域名和系统返回的文件ID拼接而成;通过客户端下载文件的具体步骤包括:
a.用WEB服务器的域名和文件ID,拼出WEB服务器指定的下载链接;
b.从关系型数据库中得到原文件名和文件ID的对应关系,将原文件名作为请求参数变量带在下载链接中;
c.在WEB服务器端,利用请求的取值变量得到请求参数变量值作为键值,并加入到http响应头,从而重写响应头;
d.利用重写过响应头的链接通过浏览器去访问文件,弹出文件下载的对话框,对话框中的文件名即是指定链接的请求参数变量,也就是原文件名;
e.将请求发给正常工作的跟踪服务器,跟踪服务器解析请求,得到文件名中包含的存储文件信息,然后为该请求选择一个合适的存储服务器读请求,找到该文件并返回给客户端。
2.根据权利要求1所述的轻量级分布式文件系统,其特征在于,所述关系型数据库为Mysql数据库。
3.根据权利要求2所述的轻量级分布式文件系统,其特征在于,所述WEB服务器为nginx服务器。
4.基于权利要求1或2或3所述的轻量级分布式文件系统的恢复下载文件原名的方法,其特征在于,包括如下步骤:
a.用WEB服务器的域名和文件ID,拼出WEB服务器指定的下载链接;
b.从关系型数据库中得到原文件名和文件ID的对应关系,将原文件名作为请求参数变量带在下载链接中;
c.在WEB服务器端,利用请求的取值变量得到请求参数变量值作为键值,并加入到http响应头,从而重写响应头;
d.利用重写过响应头的链接通过浏览器去访问文件,弹出文件下载的对话框,对话框中的文件名即是指定链接的请求参数变量,也就是原文件名;
e.将请求发给正常工作的跟踪服务器,跟踪服务器解析请求,得到文件名中包含的存储文件信息,然后为该请求选择一个合适的存储服务器读请求,找到该文件并返回给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610078169.8A CN105763604B (zh) | 2016-02-04 | 2016-02-04 | 轻量级分布式文件系统及恢复下载文件原名的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610078169.8A CN105763604B (zh) | 2016-02-04 | 2016-02-04 | 轻量级分布式文件系统及恢复下载文件原名的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105763604A CN105763604A (zh) | 2016-07-13 |
CN105763604B true CN105763604B (zh) | 2019-03-19 |
Family
ID=56329979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610078169.8A Active CN105763604B (zh) | 2016-02-04 | 2016-02-04 | 轻量级分布式文件系统及恢复下载文件原名的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763604B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769151B (zh) * | 2018-05-15 | 2019-11-12 | 新华三技术有限公司 | 一种业务处理方法和装置 |
CN109871410A (zh) * | 2019-02-14 | 2019-06-11 | 深圳市盟天科技有限公司 | 一种数据组装入库的方法、装置、服务器、存储介质 |
CN111159133B (zh) * | 2019-12-16 | 2022-05-17 | 北京航天智造科技发展有限公司 | 一种基于微服务的分布式论坛系统 |
CN111966742A (zh) * | 2020-09-14 | 2020-11-20 | 量子数聚(北京)科技有限公司 | 数据迁移方法及系统 |
CN112131202B (zh) * | 2020-10-10 | 2022-08-16 | 厦门悦讯信息科技股份有限公司 | 一种分布式文件存储和读取方法、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307219A (zh) * | 2011-03-18 | 2012-01-04 | 北京神州数码思特奇信息技术股份有限公司 | 一种文件存取系统及文件上传方法和文件下载方法 |
CN104202384A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件系统的文件上传及查找方法 |
CN104601724A (zh) * | 2015-02-03 | 2015-05-06 | 北京金和软件股份有限公司 | 上传和下载文件的方法及系统 |
CN104935668A (zh) * | 2015-06-26 | 2015-09-23 | 四川长虹电器股份有限公司 | 分布式文件系统及其数据同步的方法 |
CN104965835A (zh) * | 2014-07-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种分布式文件系统的文件读写方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833294B (zh) * | 2011-06-17 | 2015-05-20 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
-
2016
- 2016-02-04 CN CN201610078169.8A patent/CN105763604B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307219A (zh) * | 2011-03-18 | 2012-01-04 | 北京神州数码思特奇信息技术股份有限公司 | 一种文件存取系统及文件上传方法和文件下载方法 |
CN104965835A (zh) * | 2014-07-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种分布式文件系统的文件读写方法及装置 |
CN104202384A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件系统的文件上传及查找方法 |
CN104601724A (zh) * | 2015-02-03 | 2015-05-06 | 北京金和软件股份有限公司 | 上传和下载文件的方法及系统 |
CN104935668A (zh) * | 2015-06-26 | 2015-09-23 | 四川长虹电器股份有限公司 | 分布式文件系统及其数据同步的方法 |
Non-Patent Citations (1)
Title |
---|
分布式文件系统名字空间管理;陈云云;《中国优秀硕士学位论文全文数据库(电子期刊)(信息科技辑)》;20140615;I138-516 |
Also Published As
Publication number | Publication date |
---|---|
CN105763604A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763604B (zh) | 轻量级分布式文件系统及恢复下载文件原名的方法 | |
CN109145205B (zh) | 一种基于区块链的跨链数据操作方法和装置 | |
JP4950439B2 (ja) | 部分的複製を使用する、Webコンテンツの分散型ホスティング | |
Wu et al. | Cloud storage as the infrastructure of cloud computing | |
EP2143051B1 (en) | In-memory caching of shared customizable multi-tenant data | |
US10769029B2 (en) | Accessing records of a backup file in a network storage | |
JP5744229B2 (ja) | ネットワーク複製のための技法 | |
US10257109B2 (en) | Cloud-based content management system | |
JP2010519625A (ja) | ライブエンティティインターネットストアサービス | |
Diaz et al. | Futuregrid image repository: A generic catalog and storage system for heterogeneous virtual machine images | |
CN105683928B (zh) | 用于数据高速缓存策略的方法、服务器和存储器设备 | |
CN109791557A (zh) | 媒体存储 | |
Weissman et al. | Early experience with the distributed nebula cloud | |
CN109542861A (zh) | 一种文件管理方法、装置和系统 | |
CN110008197A (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
US11016934B2 (en) | Automated content-based and context-based file organizational structuring | |
CN102870115A (zh) | 网盘文件存储方法及服务器 | |
CN104281486B (zh) | 一种虚拟机处理方法和装置 | |
Kumar et al. | Calibre: A better consistency-latency tradeoff for quorum based replication systems | |
Holt | Scaling CouchDB: replication, clustering, and administration | |
RU2656739C1 (ru) | Способ и система хранения данных | |
Heinsen et al. | Cloud storage federation as a service reference architecture | |
Chazapis et al. | H3: An application-level, low-overhead object store | |
Klein et al. | Investigating bloom filters for web archives' holdings | |
US9727655B2 (en) | Searching system, method and P2P device for P2P device community |
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 |