欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

006_FastDFS文件上传

发布时间:2025/4/17 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 006_FastDFS文件上传 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 文件上传流程图

2. 选择tracker server: 当集群中不止一个tracker server时, 由于tracker之间是完全对等的关系, 客户端在upload文件时可以任意选择一个trakcer。

3. 选择存储的group: 当tracker接收到upload file的请求时, 会为该文件分配一个可以存储该文件的group。支持如下选择group的规则:

3.1. Round robin, 所有的group间轮询。

3.2. Specified group, 指定某一个确定的group。

3.3. Load balance, 剩余存储空间多的group优先。

4. 选择storage server: 当选定group后, tracker会在group内选择一个storage server给客户端。支持如下选择storage的规则:

4.1. Round robin, 在group内的所有storage间轮询。

4.2. First server ordered by ip, 按ip排序。

4.3. First server ordered by priority, 按优先级排序(优先级在storage上配置)。

5. 选择storage path: 当分配好storage server后, 客户端将向storage发送写文件请求, storage将会为文件分配一个数据存储目录, 支持如下规则:

5.1. Round robin,多个存储目录间轮询。

5.2. 剩余存储空间最多的优先。

6. 生成Fileid: 选定存储目录之后, storage会为文件生一个Fileid。规则:

6.1. 由storage server ip、文件创建时间、文件大小、文件crc32和一个随机数拼接而成, 然后将这个二进制串进行base64编码, 转换为可打印的字符串。

7. 选择两级目录: 每个存储目录下有两级256*256的子目录,storage会按文件fileid进行两次hash(猜测), 路由到其中一个子目录, 然后将文件以fileid为文件名存储到该子目录下。

8. 客户端upload file成功后, 会拿到一个storage生成的文件名, 接下来客户端根据这个文件名即可访问到该文件。

总结

以上是生活随笔为你收集整理的006_FastDFS文件上传的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。