码迷,mamicode.com
首页 > Web开发 > 详细

fastdfs分布式文件系统文件上传、下载、删除交互过程讲解

时间:2016-08-03 12:03:26      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

在讲解fastdfs的上传、下载和删除流程之前,我们先介绍fastdfs中的工程流程:首先客户端client 调用fastdfs的api,获取可用的tracker server 

再调用tracker server 获取可用的组,tracker server 通过负载均衡返回一个最优的storage server,这样客户端与client就建立了连接,client就可

以调用storage server对文件进行上传、删除和追加的操作。

下面我们将结合时序图的方式给大家详细讲解fastdfs的上传、下载和删除各个角色的交互流程

技术分享

文件上传交互流程

从上图中我们可以看出整个交互过程分为3步:

    1. client询问tracker上传到的storage,不需要附加参数;
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件上传。 

上传成功后,storage将会返回一个字符串数组,其中results[0]:卷名即组,results[1]:文件名(包含在文件系统的目录结构)。

在FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

组group如group1,文件名由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)

拼接而成。如:/group2/M00/00/01/goQeAFUjqu2AdlUPABHKPTiTXBY295.jpg


具体的访问地址需自己在代码中拼上域名和端口号如:http://xxx.xxx.com:8002/group2/M00/00/01/goQeAFUjqu2AdlUPA

BHKPTiTXBY295.jpg

需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。


文件上传类型有3种: 
    1. upload:上传普通文件,包括主文件  ;
    2. upload_appender:上传appender文件,后续可以对其进行append操作【又用作断点续传】  ;
    3. upload_slave:上传从文件;
下载文件交互过程

技术分享

下载文件交互过程


从上图中我们可以看出整个交互过程分为3步:

    1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件下载;

文件删除交互过程

技术分享

文件删除交互过程

从上图中我们可以看出整个交互过程分为3步:

    1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件删除;
删除成功后,返回int类型的结果值0:文件删除成功,2:文件不存在 ,其它:文件删除出错;

注:本文部分图和文字参考网络相关资料

fastdfs分布式文件系统文件上传、下载、删除交互过程讲解

标签:

原文地址:http://blog.csdn.net/mr_smile2014/article/details/52101332

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!