FastDFS加Redis实现自定义文件名存储海量文件
FastDFS加Redis实现自定义文件名存储海量文件

FastDFS非常适合存储大量的小文件,遗憾的是本身不支持自定义文件名,文件名是存储成功以后根据存储位置生成的一个file_id。很多应用场景不得不使用自定义文件名,在不修改其源码的情况下,可以在存储客户端fdfs_client增加一个用来存储自定义文件名和fastdfs的file_id之间的映射关系的数据库间接实现自定义文件名的存取和访问,在这里我们选用了reids。顺便说一下,淘宝也有一个类似于FastDFS的文件存储系统TFS,对于自定义文件名,它是用mysql来存储映射关系的,我认为在高并发访问下mysql本身就是瓶颈,因此在这个方案中采用了redis。

准备工作:

fastdfs环境安装...略...(官方:https://code.google.com/p/fastdfs/

redis环境安装...略...(官方:http://redis.io/)

用python实现,因此需要安装fastdfs的python客户端(下载:https://fastdfs.googlecode.com/files/fdfs_client-py-1.2.6.tar.gz)

python的redis客户端,到https://pypi.python.org/pypi/redis下载

详见博客:http://my.oschina.net/waterbear/blog/150743

01
# -*- coding: utf-8 -*-
02

03

04
#fastdfs tracker, multiple tracker supported
05
fdfs_tracker = {
06
'host_tuple'[s:2]'192.168.2.233','192.168.2.234'),
07
'port':22122,
08
'timeout':30,
09
'name':'Tracker Pool'
10
}
11
#fastdfs meta db, multiple redisdb supported
12
fdfs_redis_dbs = (
13
    ('192.168.2.233',6379,0),
14
    ('192.168.2.233',6379,1)
15
)

转自 开源中国 水熊宝宝 发布于 2013年08月07日 12时, 4评/325阅
来自 科创茶话

想参与大家的讨论?现在就 登录 或者 注册

{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png