FastDFS常用命令的介绍与使用(关于文件端点续传)

1)上传文件命令:fdfs_upload_file
不仅可以上传图片文件,也可以上传其他文件。
[root@Fastdfs_client src]# echo "hahaha" > test.txt
[root@Fastdfs_client src]#  /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.txt 
group3/M00/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt

上传成功后,返回一串带有组和路径标识的字符串,这是文件的id,然后到group3组内的存储服务器上查看这个文件的id信息
[root@Fastdfs_storage_s3 ~]# ll /fastdfs/storage/data/00/00/
total 84
-rw-r--r--. 1 root root      7 Feb 27 11:02 wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt

[root@Fastdfs_storage_s3 ~]# cat /fastdfs/storage/data/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
hahaha

[root@Fastdfs_storage_s3 ~]# md5sum /fastdfs/storage/data/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
5a6d311c0d8f6d1dd03c1c129061d3b1  /fastdfs/storage/data/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt

2)下载文件命令:fdfs_download_file
在客户端机器上将上面上传到Fastdfs存储里文文件下载下来
[root@Fastdfs_client ~]# cd /mnt/
[root@Fastdfs_client mnt]# /usr/bin/fdfs_download_file /etc/fdfs/client.conf group3/M00/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
[root@Fastdfs_client mnt]# ls
wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
[root@Fastdfs_client mnt]# cat wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt 
hahaha

[root@Fastdfs_client mnt]# md5sum wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
5a6d311c0d8f6d1dd03c1c129061d3b1  wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt

下载后可以对比文件的md5值。

3)查看文件信息命令:fdfs_file_info
[root@Fastdfs_client ~]# /usr/bin/fdfs_file_info /etc/fdfs/client.conf group3/M00/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
source storage id: 0
source ip address: 192.168.10.204
file create timestamp: 2018-02-27 11:02:02
file size: 7
file crc32: 3909919332 (0xE90CA264)

4)删除文件命令:fdfs_delete_file
[root@Fastdfs_client ~]# /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group3/M00/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt

删除之后没有信息提示,我们再进行下载和查找,结果如下:
[root@Fastdfs_client mnt]# /usr/bin/fdfs_download_file /etc/fdfs/client.conf group3/M00/00/00/wKgKzFqUyiqAabn8AAAAB-kMomQ229.txt
[2018-02-27 14:21:08] ERROR - file: tracker_proto.c, line: 48, server: 192.168.10.204:23000, response status 2 != 0
download file fail, error no: 2, error info: No such file or directory

到group3组内的存储服务器上查看,发现没有这个文件的id信息
[root@Fastdfs_storage_s3 ~]# ll /fastdfs/storage/data/00/00/
[root@Fastdfs_storage_s3 ~]# 

5)追加文件内容命令:fdfs_upload_appender 和 fdfs_append_file 
先使用命令上传一个appender文件
[root@Fastdfs_client src]# echo "123456" > haha.txt
[root@Fastdfs_client src]# /usr/bin/fdfs_upload_appender /etc/fdfs/client.conf /usr/local/src/haha.txt 
group1/M00/00/00/wKgKylqU_myEa194AAAAACXX7BE787.txt

到group1组内的存储服务器上查看这个文件
[root@Fastdfs_storage_s1 ~]# ll /fastdfs/storage/data/00/00/
total 12
-rw-r--r--. 1 root root      7 Feb 27 14:45 wKgKylqU_myEa194AAAAACXX7BE787.txt
[root@Fastdfs_storage_s1 ~]# cat /fastdfs/storage/data/00/00/wKgKylqU_myEa194AAAAACXX7BE787.txt
123456

然后进行内容追加
[root@Fastdfs_client src]# echo "abcdefgh" > heihei.txt
[root@Fastdfs_client src]# /usr/bin/fdfs_append_file /etc/fdfs/client.conf group1/M00/00/00/wKgKylqU_myEa194AAAAACXX7BE787.txt /usr/local/src/heihei.txt 

再次到group1组内的存储服务器上查看这个文件内容
[root@Fastdfs_storage_s1 ~]# cat /fastdfs/storage/data/00/00/wKgKylqU_myEa194AAAAACXX7BE787.txt
123456
abcdefgh

或者将文件下载到本地查看
[root@Fastdfs_client src]# cd /mnt/
[root@Fastdfs_client mnt]# /usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgKylqU_myEa194AAAAACXX7BE787.txt
[root@Fastdfs_client mnt]# ls
wKgKylqU_myEa194AAAAACXX7BE787.txt  
[root@Fastdfs_client mnt]# cat wKgKylqU_myEa194AAAAACXX7BE787.txt
123456
abcdefgh

6)监控服务器状态命令:fdfs_monitor
[root@Fastdfs_client src]# /usr/bin/fdfs_monitor /etc/fdfs/client.conf
[2018-02-27 14:49:06] DEBUG - base_path=/fastdfs/tracker, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

server_count=2, server_index=0

tracker server is 192.168.10.200:22122

group count: 3

Group 1:
group name = group1
disk total space = 50268 MB
disk free space = 44987 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0

  Storage 1:
    id = 192.168.10.202
    ip_addr = 192.168.10.202  ACTIVE
    http domain = 
........
........

7)移除故障节点示例
如果一个group组内有多个节点,其中一个节点的上的fastdfs出了问题,需要将它从组中移除,可根据下面的命令操作:
a)停掉fastdfs上的storage服务
   # /etc/init.d/fdfs_storaged stop
   # lsof -i :23000        //确保storage服务停止
b)将问题节点(比如group1组内的节点storage-node3,ip为192.168.10.23)从组中移除
   # /usr/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.10.23
c)移除成功,使用fdfs_monitor命令进行监控
   # /usr/bin/fdfs_monitor /etc/fdfs/client.conf

通过监控,可以发现移除之后,storage-node3节点的状态为DELETED。
d)当storage-node3上的fastdfs修复后,可以再把它加入到fastdfs组中,加入的操作只需要把storage-node3上的fastdfs服务正常启动就好,
因为配置文件已经做了配置,如果服务正常的话,修复后的节点可以自动加入到fastdfs组中

启动fastdfs_storaged服务
   # /etc/init.d/fdfs_storaged stop
   # lsof -i :23000  

使用fdfs_monitor命令进行监控
   # /usr/bin/fdfs_monitor /etc/fdfs/client.conf

修复后,再次监控,可以看到,此时storage-node3已经变为ACTIVE状态了。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FastDFS是一个开源的轻量级分布式文件系统,用于分布式存储和管理大规模的文件。在使用FastDFS进行断点续传下载时,可以结合Java语言来实现。 在Java中,首先需要引入FastDFS的相关依赖库,比如fastdfs-client-java。然后,通过FastDFS的Java API来实现断点续传下载的功能。 具体实现步骤如下: 1. 首先,需要获取待下载文件文件元数据,如文件名、文件大小等信息,可以通过FastDFS的API来获取。 2. 然后,根据文件元数据和下载路径,创建一个本地文件,用于存储下载的文件内容。 3. 接着,通过FastDFS的API,通过指定的文件偏移量和下载长度来读取文件内容,将文件内容写入到本地文件中。同时,记录已下载的文件长度。 4. 当下载完成时,关闭与FastDFS的连接,并完成断点续传下载的过程。 需要注意的是,在断点续传下载前,需要判断是否已有部分文件已经下载完成,如果是,则可以根据已有的文件长度来设置文件偏移量和下载长度,从而进行断点续传下载。 总而言之,Java可以通过调用FastDFS的API来实现断点续传下载功能,具体的实现步骤包括获取文件元数据、创建本地文件、通过指定的偏移量和长度读取文件内容,并将内容写入到本地文件中,最后完成断点续传下载过程。 ### 回答2: FastDFS是一个开源的轻量级分布式文件系统,它主要用于解决大规模数据存储和分布式文件访问的问题。FastDFS完整的文件传输过程可以分为文件上传和文件下载两部分。而断点续传则是指在网络异常或用户主动中断的情况下,能够恢复之前未传输完成的文件传输。 在Java中实现FastDFS的断点续传下载可以通过以下步骤: 1. 首先,通过FastDFS提供的Java客户端API,连接到FastDFS服务器。 2. 检查本地文件系统,判断是否存在已下载的临时文件。 3. 如果存在未下载完成的临时文件,获取已下载字节数并记录。 4. 通过FastDFS文件下载API,设置偏移量为已下载的字节数。 5. 将下载的文件片段追加到本地临时文件中,并更新已下载的字节数。 6. 重复步骤4和步骤5,直到下载完成。 7. 删除临时文件并保存完整的文件。 在每次下载时,需要记录已下载的字节数,以便下次下载时可以根据该偏移量进行断点续传。可以将该信息保存在本地文件系统的临时文件中,或者通过数据库等方式进行持久化存储。 断点续传的实现可以大大提高文件传输的可靠性和效率,特别是在网络不稳定或文件较大的情况下。通过合理地记录已下载的字节数,并使下载从中断处继续,可以减少重复传输的数据,节省带宽和时间。 总之,使用Java可以通过FastDFS的API实现断点续传下载。这样可以提高文件传输的可靠性和效率,为用户提供更良好的体验。 ### 回答3: FastDFS是一个分布式文件存储系统,它采用了文件切割、分布式存储和文件索引等技术,可以高效地存储和管理大规模的文件。在Java中,可以使用FastDFS提供的客户端API来实现断点续传下载功能。 在实现断点续传下载的过程中,首先需要通过FastDFS客户端API获取文件的元数据信息,包括文件大小和分片信息等。然后,根据已下载的文件大小,确定接下来要从哪个分片开始下载。 接下来,使用Java的IO流技术将分片数据写入本地文件中。为了实现断点续传功能,可以通过设置HTTP请求的Range头字段来指定下载的起始位置,从而避免重复下载已经下载过的部分。 在下载过程中,可以采用多线程的方式进行并发下载,提高下载速度。可以将文件分成多个连续的范围,并为每个范围创建一个线程进行下载。在每个线程下载完成后,将下载的数据写入本地文件中相应的位置。 另外,在断点续传下载的过程中,需要实时记录已下载的文件大小,并及时保存断点信息。这样,当下载中断时,下次继续下载时可以根据已下载的文件大小和分片信息来确定需要继续下载的位置,从而实现断点续传的功能。 总之,通过使用FastDFS的客户端API和Java的IO流技术,可以实现断点续传下载功能。通过合理地划分分片和利用多线程进行并发下载,可以提高下载速度。并通过记录已下载的文件大小和断点信息,实现下载中断后的断点续传

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值