使用Docker安装FastDFS(分布式文件系统)

1. 获取镜像

可以利用已有的FastDFS Docker镜像来运行FastDFS。

获取镜像可以通过下载

docker image pull delron/fastdfs

也可是直接使用提供的镜像备份文件

docker load -i 文件路径/fastdfs_docker.tar(提前打包好的)

加载好镜像后,就可以开启运行FastDFS的tracker和storage了。

2. 运行tracker

执行如下命令开启tracker 服务

docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
  • 我们将fastDFS tracker运行目录映射到本机的 /var/fdfs/tracker目录中。

执行如下命令查看tracker是否运行起来

docker container ls

如果想停止tracker服务,可以执行如下命令

docker container stop tracker

停止后,重新运行tracker,可以执行如下命令

docker container start tracker

3. 运行storage

执行如下命令开启storage服务

docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
  • TRACKER_SERVER=本机的ip地址:22122 本机ip地址不要使用127.0.0.1
  • 我们将fastDFS storage运行目录映射到本机的/var/fdfs/storage目录中

执行如下命令查看storage是否运行起来

docker container ls

如果想停止storage服务,可以执行如下命令

docker container stop storage

停止后,重新运行storage,可以执行如下命令

docker container start storage

注意:如果无法重新运行,可以删除/var/fdfs/storage/data目录下的fdfs_storaged.pid 文件,然后重新运行storage。


4. FastDFS的Python客户端

python版本的FastDFS客户端使用说明参考https://github.com/jefforeilly/fdfs_client-py

安装

安装提供给大家的fdfs_client-py-master.zip到虚拟环境中

pip install fdfs_client-py-master.zip
pip install mutagen
pip isntall requests

使用

使用FastDFS客户端,需要有配置文件。我们在meiduo_mall/utils目录下新建fastdfs目录,将提供给大家的client.conf配置文件放到这个目录中。

需要修改一下client.conf配置文件

base_path=FastDFS客户端存放日志文件的目录
tracker_server=运行tracker服务的机器ip:22122

上传文件需要先创建fdfs_client.client.Fdfs_client的对象,并指明配置文件,如

from fdfs_client.client import Fdfs_client
client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf')

通过创建的客户端对象执行上传文件的方法

client.upload_by_filename(文件名)
或
client.upload_by_buffer(文件bytes数据)

如:

>>> ret = client.upload_by_filename('/Users/delron/Desktop/1.png')
getting connection
<fdfs_client.connection.Connection object at 0x1098d4cc0>
<fdfs_client.fdfs_protol.Tracker_header object at 0x1098d4908>
>>> ret
{'Group name': 'group1', 'Remote file_id': 'group1/M00/00/02/CtM3BVr-k6SACjAIAAJctR1ennA809.png', 'Status': 'Upload successed.', 'Local file name': '/Users/delron/Desktop/1.png', 'Uploaded size': '151.00KB', 'Storage IP': '10.211.55.5'}
>>>
  • Remote file_id 即为FastDFS保存的文件的路径

猜你喜欢

转载自blog.csdn.net/odyssues_lee/article/details/80863189