Linux安装fastDFS已经文件上传、下载和增删操作

Linux安装fastDFS

1. 准备下载好的安装包

fastDFS安装包(提取码1008)

或者使用直接通过 Github:https://github.com/happyfish100 下载 libfastcommon , fastdfs ,fastdfs-nginx-module 三个项目对应的压缩包

或者使用 git 命令下载,或者通过资源地址:https://sourceforge.net/projects/fastdfs/files/ 下载

  • libfastcommon :从 fastdfs 项目和 fastdht 项目中提取出来的公共 C 函数库。
  • fastdfs:FastDFS 核心项目。
  • fastdfs-nginx-module:Nginx 整合 FastDFS 时 Nginx 需要添加的模块资源。

2. 解压所有的压缩文件

压缩文件都是.zip格式的,需要事先安装完unzip

yum -y install unzip

3. 安装依赖

FastDFS 是基于 C 语言开发的,安装它之前必须先安装它所依赖的环境。

yum install -y make cmake gcc gcc-c++

4. 安装公共函数库

进入libfastcommon-master目录,编译并安装

./make.sh && ./make.sh install

5. 安装fastDFS

进入fastdfs-master.zip目录,编译并安装

./make.sh && ./make.sh install

注:

fastDFS默认安装位置:

  • /usr/bin: 可执行文件
  • /etc/fdfs : 配置文件
  • /etc/init.d: 主程序代码
  • /usr/include/fastdfs : 插件组

启动Tracker

trackerstorage 其实都是 fastDFS ,只不过启动时通过不同的配置文件启动,所扮演的角色不同而已。

也就是说,安装trackerstorage就是在安装 fastDFS,然后通过每个角色具体的配置文件启动即可。

1. 查看 /etc/fdfs 目录下所有配置文件

  • client.conf.sample: 客户端的配置文件, 测试用
  • storage.conf.sample: 存储器的配置文件
  • tracker.conf.sample: 跟踪器的配置文件

2. 编辑tracker.conf.sample配置文件

注: 要习惯性的把配置文件给复制一份出来,避免文件无法还原或者丢失

# 拷贝文件 `tracker.conf.sample` 并重命名为 `tracker.conf`
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    
# 编辑 `tracker.conf` 配置文件
vi /etc/fdfs/tracker.conf

3. 配置文件中的配置项还是蛮多的,这里暂且关注以下几个即可,后期根据实际情况再对其他配置项作出调整

# 允许访问 tracker 服务器的 IP 地址,为空则表示不受限制
bind_addr =
    
# tracker 服务监听端口
port = 22122
    
# tracker 服务器的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/tracker
    
# tracker 服务器 HTTP 协议下暴露的端口
http.server_port = 8080

4. 启动 tracker 服务

# 创建 tracker 服务器的运行数据和日志的存储父路径
mkdir -p /fastdfs/tracker
    
# 启动 tracker 服务
service fdfs_trackerd start
    
# 查看 tracker 服务状态
service fdfs_trackerd status
    
# 重启 tracker 服务
service fdfs_trackerd restart
    
# 停止 tracker 服务
service fdfs_trackerd stop


启动 Storage

1. 编辑 storage.conf 配置文件`

# 拷贝文件 storage.conf.sample 并重命名为 storage.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    
# 编辑 storage.conf 配置文件
vi /etc/fdfs/storage.conf

2. 配置文件中的配置项还是蛮多的,这里暂且关注以下几个即可,后期根据实际情况再对其他配置项作出调整。

# storage 组名/卷名,默认为 group1
group_name = group1
    
# 允许访问 storage 服务器的 IP 地址,为空则表示不受限制
bind_addr =
    
# storage 服务器的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/storage/base
    
# storage 服务器中客户端上传的文件的存储父路径(需要提前创建好)
store_path0 = /fastdfs/storage/store
    
# storage 服务器 HTTP 协议下暴露的端口
http.server_port = 8888
    
# tracker 服务器的 IP 和端口
tracker_server = 192.168.10.101:22122

3. 启动 storage 服务

# 创建 storage 服务器的运行数据和日志的存储父路径
mkdir -p /fastdfs/storage/base
    
# 创建 storage 服务器中客户端上传的文件的存储父路径
mkdir -p /fastdfs/storage/store
    
# 启动 storage 服务
service fdfs_storaged start
    
# 查看 storage 服务状态
service fdfs_storaged status
    
# 重启 storage 服务
service fdfs_storaged restart
    
# 停止 storage 服务
service fdfs_storaged stop

查看 /fastdfs/storage/store 目录可以看到 Storage 服务器创建了 65536 个文件夹用于存储客户端上传的文件


Client 操作

FastDFS 向使用者提供基本文件访问接口,比如 upload、download、append、delete 等,以客户端
库的方式提供给用户使用。

1. 在 Tracker 服务器的机器上编辑 tracker.conf 配置文件

# 拷贝文件 client.conf.sample 并重命名为 client.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    
# 编辑 client.conf 配置文件
vi /etc/fdfs/client.conf

2. 修改配置文件中以下两处内容即可

# client 客户端的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/client
    
# tracker 服务器的 IP 和端口
tracker_server = 192.168.10.101:22122
    
# 创建 client 服务器中客户端上传的文件的存储父路径
mkdir -p /fastdfs/client


上传 操作

1. 上传文件怎么选择追踪服务器(Tracker Server)

存储服务器(Storage Server)会定期向追踪服务器(Tracker Server)发送自己的所属组(group)等存储相关信息.

如果追踪服务器(Tracker Server)是个集群环境的话, 那各个追踪器(Tracker)之间的关系是对等的,所以客户端上传时可以选择任意一个追踪器(Tracker).

2. 上传文件时如何选择组(group)

当追踪器(Tracker)收到客户端上传文件的请求时,会给这个文件分配一个可用的组(group)用来存储, 当选定了组(group)以后就要决定给客户端分配组(group)中的哪一个存储服务器( Storage Server).

3. 上传文件方式一(以图片为例)

上传命令格式为:
fdfs_upload_file /etc/fdfs/client.conf 要上传的文件 

文件上传成功以后,会返回这个文件在存储服务器的位置和随机生成的文件名.

group1: 表示存储器的组名/卷名

M00: 是一个虚拟目录,表示/fastdfs/storage/store/data/真实路径中的data目录

4. 查看存储服务器是否发现该文件已成功上传

ls /fastdfs/storage/store/data/00/00


5. 上传文件方式二

使用:fdfs_test /etc/fdfs/client.conf upload 要上传的文件

[root@localhost fdfs]# clear
[root@localhost fdfs]# fdfs_test /etc/fdfs/client.conf upload /root/a.jpg 
This is FastDFS client test program v6.07

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.fastken.com/ 
for more detail.

[2020-11-12 02:25:14] DEBUG - base_path=/fastdfs/client, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_p
ool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
tracker_query_storage_store_list_without_group: 
	server 1. group_name=, ip_addr=192.168.10.102, port=23000

group_name=group1, ip_addr=192.168.10.102, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgKZl-sLIqAGFMeAAdK0AVyLUA042.jpg
source ip address: 192.168.10.102
file timestamp=2020-11-12 02:25:14
file size=477904
file crc32=91368768
example file url: http://192.168.10.102/group1/M00/00/00/wKgKZl-sLIqAGFMeAAdK0AVyLUA042.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgKZl-sLIqAGFMeAAdK0AVyLUA042_big.jpg
source ip address: 192.168.10.102
file timestamp=2020-11-12 02:25:15
file size=477904
file crc32=91368768
example file url: http://192.168.10.102/group1/M00/00/00/wKgKZl-sLIqAGFMeAAdK0AVyLUA042_big.jpg

通过 fdfs_test 的方式上传文件,会返回该文件上传成功以后详细的相关信息。

  • group_name:Storage 组名/卷名
  • remote_filename :上传成功文件的存储路径及文件名
  • source_ip address:上传成功文件所在的 Storage 服务器的 IP 地址
  • file timestamp:上传成功文件时的时间戳
  • file size :上传成功文件的文件大小
  • example file url :上传成功文件的 url 地址,配合 Nginx 可以直接访问
  • storage_upload_slave_by_filename :FastDFS 的文件主/从特性,由主文件产生从文件

6. 查看存储服务器(Storage server)是否上传成功

ls /fastdfs/storage/store/data/00/00/

后缀为jpg-m的文件存放了上传成功文件的元数据信息

# 查看元数据信息
more /fastdfs/storage/store/data/00/00/wKgKZl-sLIqAGFMeAAdK0AVyLUA042.jpg-m


下载 操作

客户端上传文件(upload file)成功以后, 会拿到一个存储器(Storage)生成的文件名, 接下来客户端根据这个文件名即可访问到该文件

和上传文件( upload file)一样,在下载文件(download file)时客户端可以选择任意追踪服务器( Tracker Server)。客户端发送下载(download )请求给某给追踪器(Tracker), 必须带上文件名信息, 追踪器(Tracker)从文件中解析该文件的组(group), 大小, 创建时间等信息, 然后为该请求选择一个存储器(Storage)用于提供读取服务.

1. 下载文件方式一

下载命令格式为:
fdfs_download_file /etc/fdfs/client.conf group_name/remote_filename
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/文件名

2. 下载文件方式二

下载命令格式为:
fdfs_test /etc/fdfs/client.conf download group_name/remote_filename 
fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/文件名


删除 操作

1. 删除文件方式一

删除命令格式为: 
fdfs_delete_file /etc/fdfs/client.conf 要删除的文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/文件名

注 : 删除文件操作会将元数据文件一并删除

2. 删除文件方式二

删除命令格式为: 
fdfs_test /etc/fdfs/client.conf delete group_name remote_filename
fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/文件名

Guess you like

Origin blog.csdn.net/weixin_45561352/article/details/109659706