一、Docker安装运⾏FastDFS
1、获取FastDFS镜像
从仓库拉取镜像
$ sudo docker image pull delron/fastdfs
解压⽂档中本地镜像
$ sudo docker load -i ⽂件路径/fastdfs_docker.tar
2、开启tracker容器
我们将 tracker 运⾏⽬录映射到宿主机的 /var/fdfs/tracker⽬录中
sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
3、开启storage容器
TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使⽤127.0.0.1)
我们将 storage 运⾏⽬录映射到宿主机的 /var/fdfs/storage⽬录中。
$ sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=192.168.21.141:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
4、查看宿主机映射路径
注意:如果⽆法重启storage容器,可以删除/var/fdfs/storage/data⽬录下的fdfs_storaged.pid ⽂件,然后重新运⾏storage。
二、FastDFS客户端上传⽂件
1、安装FastDFS客户端扩展
安装模块虚拟环境中
$ pip install py3Fdfs
$ pip install mutagen
$ pip install requests
2、准备FastDFS客户端扩展的配置⽂件
mgproject.utils.fastdfs.client.conf
# connect timeout in seconds
# default value is 30s
connect_timeout=30
# network timeout in seconds
# default value is 30s
network_timeout=60
# the base path to store log files
base_path=/home/ynxiaolu/Desktop
# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=ubuntu的ip地址:22122
通过ip addr查看ip地址
3.FastDFS客户端实现⽂件存储
使⽤ shell 进⼊ Python交互环境
$ python manage.py shell
1.导⼊FastDFS客户端扩展
from fdfs_client.client import Fdfs_client, get_tracker_conf
2.创建FastDFS客户端实例
tracker_path = get_tracker_conf('/home/zhilong/Desktop/mangguo/mgproject/mgproject/utils/fastdfs/client.conf')
client = Fdfs_client(tracker_path)
3.调⽤FastDFS客户端上传⽂件⽅法ret
ret = client.upload_by_filename('/home/zhilong/Desktop/p2p.png')
{
'Group name': b'group1',
'Remote file_id': b'group1/M00/00/00/wKgRgWJs32iAAT3cAAcYu3-y8c4815.png',
'Status': 'Upload successed.',
'Local file name': '/home/zhilong/Desktop/p2p.png',
'Uploaded size': '454.18KB',
'Storage IP': b'192.168.17.129'
}
4、查看容器中的图片
zhilong@zhilong-virtual-machine:/bin$ cd /var/fdfs/storage
zhilong@zhilong-virtual-machine:/var/fdfs/storage$ ls
data logs
zhilong@zhilong-virtual-machine:/var/fdfs/storage$ cd data
zhilong@zhilong-virtual-machine:/var/fdfs/storage/data$ ls
00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90 99 A2 AB B4 BD C6 CF D8 E1 EA F3 FC
01 0A 13 1C 25 2E 37 40 49 52 5B 64 6D 76 7F 88 91 9A A3 AC B5 BE C7 D0 D9 E2 EB F4 FD
02 0B 14 1D 26 2F 38 41 4A 53 5C 65 6E 77 80 89 92 9B A4 AD B6 BF C8 D1 DA E3 EC F5 fdfs_storaged.pid
03 0C 15 1E 27 30 39 42 4B 54 5D 66 6F 78 81 8A 93 9C A5 AE B7 C0 C9 D2 DB E4 ED F6 FE
04 0D 16 1F 28 31 3A 43 4C 55 5E 67 70 79 82 8B 94 9D A6 AF B8 C1 CA D3 DC E5 EE F7 FF
05 0E 17 20 29 32 3B 44 4D 56 5F 68 71 7A 83 8C 95 9E A7 B0 B9 C2 CB D4 DD E6 EF F8 storage_stat.dat
06 0F 18 21 2A 33 3C 45 4E 57 60 69 72 7B 84 8D 96 9F A8 B1 BA C3 CC D5 DE E7 F0 F9 sync
07 10 19 22 2B 34 3D 46 4F 58 61 6A 73 7C 85 8E 97 A0 A9 B2 BB C4 CD D6 DF E8 F1 FA
08 11 1A 23 2C 35 3E 47 50 59 62 6B 74 7D 86 8F 98 A1 AA B3 BC C5 CE D7 E0 E9 F2 FB
zhilong@zhilong-virtual-machine:/var/fdfs/storage/data$ cd 00
zhilong@zhilong-virtual-machine:/var/fdfs/storage/data/00$ ls
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 A0 A8 B0 B8 C0 C8 D0 D8 E0 E8 F0 F8
01 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 81 89 91 99 A1 A9 B1 B9 C1 C9 D1 D9 E1 E9 F1 F9
02 0A 12 1A 22 2A 32 3A 42 4A 52 5A 62 6A 72 7A 82 8A 92 9A A2 AA B2 BA C2 CA D2 DA E2 EA F2 FA
03 0B 13 1B 23 2B 33 3B 43 4B 53 5B 63 6B 73 7B 83 8B 93 9B A3 AB B3 BB C3 CB D3 DB E3 EB F3 FB
04 0C 14 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 7C 84 8C 94 9C A4 AC B4 BC C4 CC D4 DC E4 EC F4 FC
05 0D 15 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 7D 85 8D 95 9D A5 AD B5 BD C5 CD D5 DD E5 ED F5 FD
06 0E 16 1E 26 2E 36 3E 46 4E 56 5E 66 6E 76 7E 86 8E 96 9E A6 AE B6 BE C6 CE D6 DE E6 EE F6 FE
07 0F 17 1F 27 2F 37 3F 47 4F 57 5F 67 6F 77 7F 87 8F 97 9F A7 AF B7 BF C7 CF D7 DF E7 EF F7 FF
zhilong@zhilong-virtual-machine:/var/fdfs/storage/data/00$ cd 00
zhilong@zhilong-virtual-machine:/var/fdfs/storage/data/00/00$ ls
wKgRgWJs32iAAT3cAAcYu3-y8c4815.png
三、浏览器下载并渲染图⽚
思考:如何才能找到在Storage中存储的图⽚?
1、协议:
http
2、IP地址:192.168.xx.xx
a、Nginx服务器的IP地址。
b、因为 FastDFS 擅⻓存储静态⽂件,但是不擅⻓提供静态⽂件的下载服务,所以我们⼀般会将 Nginx 服务器绑定到 Storage ,提升下载性能。
3、端⼝:8888
a、Nginx服务器的端⼝。
4、路径:group1/M00/00/00/wKgVjV_i_qWAIWJWAABF9c0Vj0Y27.jpeg
⽂件在Storage上的⽂件索引。
5、完整图片下载地址
http://192.168.xx.xx:8888/group1/M00/00/00/wKgRgWJs32iAAT3cAAcYu3-y8c4815.png
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74076.html