FastDFS连接Tracker服务应用Demo

fastdfs的配置文件tracker.conf、storage.conf、client.conf 讲解 前言 环境:centos7.9 FastDFS_v5.07 FastDFS的配置文件主要有3个,分别是:tracker.conf、storage.conf、client.conf ,下面将来详细的讲解一下这3个配置文件。 Tracker server的配置文件tracker.conf详解 [root@nginx fdfs]# cd /etc/fdfs/ [root@nginx fdfs]# mv tracker.conf.sample tracker.conf ##先把刚安装完后默认的配置文件 阅读详情

背景配置

 这是FastDFS连接Tracker服务应用在java程序应用的Demo。多以不管是什么框架的问题,我这使用的springboot。简单快捷
 1.  java项目,springboot,javaweb什么的都可以。
 2. CentOS安装的fastDFS

1.引用jar

<dependency>
     <groupId>org.csource</groupId>
	 <artifactId>fastdfs-client-java</artifactId>
	 <version>1.27-SNAPSHOT</version>
</dependency>

踩坑ps:fastdfs-client-java-1.27-SNAPSHOT.jar maven不能成功引入依赖。
解决方案:
运行git工具,GitHub下载到本地,放入本地的maven仓库中
步骤 一: git clone https://github.com/happyfish100/fastdfs-client-java.git
      二: cd maven的本地仓库目录/fastdfs-client-java
      三: mvn clean install (命令语句)
      四: 引入项目,项目下直接建立lib文件夹,导入jar, add依赖

2.fdfs_client.conf 配置文件

fdfs_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=/opt/fastdfs_tracker

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=118.25.215.105:22122

#HTTP settings
http.tracker_server_port=80

解析:
      base_path=/opt/fastdfs_tracker #tracker服务器文件路径
      tracker_server=118.25.215.105:22122 #tracker服务器IP地址和端口号
      http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

总结:和安装时/etc/fdfs目录下的client.conf 配置是一致的

3.FastDFSUtil 工具类

package com.fastDFS;

import java.io.IOException;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/*
 * FastDFS 工具类
 */
public class FastDFSUtil {

	/*
	 * 加载连接Tracker 服务
	 */
	public StorageClient loadTracker(){
		StorageClient storageClient = null;
		try {
			// 1.加载配置文件,配置:tracker 服务地址	
			String pathName = "E:\\work\\testSpace\\demo\\src\\main\\resources\\fdfs_client.conf";
			ClientGlobal.init(pathName);
			
			// 2.创建TrackerClient对象
			TrackerClient trackerClient = new TrackerClient();
			
			// 3.使用 TrackerClient对象 创建连接
			TrackerServer trackerServer = trackerClient.getConnection();
			
			// 4.创建 StorageServer 的引用
			StorageServer storageServer = null;
			
			// 5.创建StorageClient 对象, 需要两个参数 TrackerServer 对象、 StorageServer的引用
			storageClient = new StorageClient(trackerServer, storageServer);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return storageClient;
	}
	
	/*
	 * 上传file
	 */
	public String[] uploadFile(String pathName,String suffixName){
		String[] loadFile = null ;
		try {
			// StorageClient 对象上传图片
			loadFile = loadTracker().upload_appender_file(pathName, suffixName, null);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (MyException e) {
			e.printStackTrace();
		}
		return loadFile;
	}
	
	/*
	 * 删除file
	 */
	public boolean delFile(String groups ,String pathName){
		boolean flag = false;
		try {
			int i = loadTracker().delete_file(groups, pathName);
			if(i == 0){flag = true;}			
		} catch (IOException e) {
			flag = false;
			e.printStackTrace();
		} catch (MyException e) {
			flag = false;
			e.printStackTrace();
		}
		return flag;
	}
	
}

4.测试

效果:
在这里插入图片描述
在这里插入图片描述
附:
FsdtDFS 上传file测试代码

//上传图片
FastDFSUtil sDfsUtil = new FastDFSUtil();
String[] loadFile = sDfsUtil.uploadFile("C:\\Users\\jlf\\Desktop\\io.jpg", "jpg");

// 打印测试
for (String msg : loadFile){
	System.out.println(msg);
}

FsdtDFS 删除file测试代码

//删除图片
boolean flag = sDfsUtil.delFile("group1", "M00/00/00/rBsABl3gyuyAFZuQAACn_gKysM4454.jpg");
if(flag == true){
    System.out.println("删除成功");
}else{
	System.out.println("删除失败");
}

5.优化升级

package com.fastDFS;

import java.io.IOException;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/*
 * FastDFS 工具类
 */
public class FastDFSUtil {
	
	private static TrackerClient trackerClient = null;
	private static TrackerServer trackerServer = null;
	private static StorageServer storageServer = null;
	private static StorageClient1 storageClient = null;
	
	//TRACKER_SERVER的IP
	private static String TRACKER_SERVER = "118.25.215.105:22122";
	// 创建文件服务器连接
	static {
		try {
			ClientGlobal.initByTrackers(TRACKER_SERVER);
			ClientGlobal.setG_charset("UTF-8");
			ClientGlobal.setG_connect_timeout(3000); //连接超时
			ClientGlobal.setG_network_timeout(3000); //网络超时
			trackerClient = new TrackerClient();
			trackerServer = trackerClient.getConnection();
			storageServer = null;
			storageClient = new StorageClient1(trackerServer, storageServer);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (MyException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * FastDFS上传file
	 * @param groups
	 * @param pathName
	 * @return loadFile
	 */
	public static String[] uploadFile(String pathName,String suffixName){
		String[] uploadFile = null ;
		try {
			synchronized (storageClient) {
				// StorageClient 对象文件
				uploadFile = storageClient.upload_appender_file(pathName, suffixName, null);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} catch (MyException e) {
			e.printStackTrace();
		}
		return uploadFile;
	}
	
	/**
	 * FastDFS删除file
	 * @param groups
	 * @param pathName
	 * @return flag
	 */
	public boolean delFile(String groups ,String pathName){
		boolean flag = false;
		try {
			int i = storageClient.delete_file(groups, pathName);
			if(i == 0){flag = true;}			
		} catch (IOException e) {
			flag = false;
			e.printStackTrace();
		} catch (MyException e) {
			flag = false;
			e.printStackTrace();
		}
		return flag;
	}
	
	/**
	 * 通过FastDFS下载文件
	 * @param filePath
	 * @return
	 * @throws Exception
	 */
	public static String downloadFileByFastDFS(String filePath) throws Exception {
		//以下对文件名进行处理  分布式服务器上轮询方式取出对应文件
		String [] file_name  = filePath.split("\\/");
		String remote_filename = filePath.substring(file_name[0].length()+1, filePath.length());
		byte str_byte  [] = storageClient.download_file(file_name[0], remote_filename);
		String cellValue = new String(str_byte);
		return cellValue;
	}

}

FastDFS 安装 -- 基于Docker使用,开启FastDFS的Tracker和Storage 1. 获取FastDFS镜像 方法一: docker image pull delron/fastdfs 方法二:较快 docker load -i 文件存放的路径/文件名.tar (直接使用备份镜像文件) (文件后期上传) 2. Tracker 运行 docker run -dti --network=host --name tracker -v /var/fdfs/trac... 阅读详情

相关推荐

FastDFS介绍及简单入门小demo

什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker s...

小辣鸡的博客 3273

FastDFS分布式文件系统安装和使用

一、介绍 FastDFS(最快的分布式文件系统)是淘宝开发的一款轻量级分布式文件系统,采用C语言开发,目前只提供了C、java、PHP等语言的API。 主要用它来对文件进行管理,功能包括文件同步、文件访问(上传和下载),解决了大容量存储和负载均衡的问题。 类似的分布式文件系统还有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。 二、整体架构 FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。 Tracker 主要做调度工作(管理集群) trac.

sumengnan的博客 1829

AD9361 FIR 滤波器设计

matlab 得到滤波器系数

weixin_44630490的博客 1万+

FastDfs之TrackerServer的详细配置介绍

# is this config file disabled # false for enabled # true for disabled disabled=false #当前配置是否不可用false可用,true不可用 # bind an address of this host # empty for bind all addresses of this host bind_addr= #是否绑定IP如果一个服务器上有多个IP则设置哪个IP可用,...

诚的博客 3544

电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32

让PC发现ESP32蓝牙

injre! injre~ 5446

基于FMCW技术的毫米波雷达测速原理与应用

调频连续波(FMCW)技术是毫米波雷达中实现高精度测速的核心方法之一。本文详细介绍了FMCW测速的基本原理、信号处理流程以及在实际应用中的关键技术。通过分析FMCW雷达的多普勒效应和频率差测量方法,本文展示了如何利用FMCW技术实现目标速度的高精度检测。此外,本文还探讨了FMCW测速在自动驾驶、智能交通和工业自动化等领域的应用案例,为毫米波雷达开发者提供了理论支持和实践指导。

不谈枯燥公式,只聊雷达趋势。用大白话解读毫米波里的黑科技。 1137

fastdfs文件服务器的基本安装和配置

Lison <cundream@163.com>, v1.0.0, 2019.06.11 fastdfs文件服务器的基本安装和配置 文章目录fastdfs文件服务器的基本安装和配置**准备工作**安装相关依赖下载相关软件安装安装libfastcommon-master安装fastdfs-5.11配置tracker.conf配置storage.conf启动tracker跟踪服务器启...

苍云烟 707

PADS Layout新手必看:从元件摆放到地线处理的10个实用技巧

本文为PADS Layout新手提供了10个实用技巧,涵盖元件摆放、地线处理等关键环节。从功能模块化布局到高频信号处理,再到电磁兼容性设计,帮助初学者快速掌握PCB设计核心技能,提升Layout效率和质量。特别适合需要优化PADS Layout工作流程的设计师参考。

stone的博客 255

fdfs安装配置

fastdfs是啥,百度一大堆,这里我记录下我自己的安装配置过程 先安装依赖 git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon ./make.sh ./make.sh install 如果报错检查下gcc,git之类的是不是没装好 fastdfs安装 git clone https://gith...

qq_41747979的博客 832

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 282

计算机视觉之ResNet

RestNet是2015年由微软团队提出的,在当时获得分类任务,目标检测,图像分割第一名。该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。实验结果显示,残差网络更容易优化,并且加深网络层数有助于提高正确率。在ImageNet上使用152层的残差网络(VGG net的8倍深度,但残差网络复杂度更低)。对这些网络使用集成方法实现了3.75%的错误率。获得了ILSVRC 2015竞赛的第一名。原文链接这是一篇计算机视觉领域的经典论文。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

fastDFS和nginx环境搭建和java上传图片demo

第一步:把fastDFS都上传到linux系统。 第二步:安装FastDFS之前,先安装libevent工具包。 yum -y install libevent 第三步:安装libfastcommonV1.0.7工具包。 1、解压缩 2、./make.sh 3、./make.shinstall 4、把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制

ending的博客 3436

告别Python中间件!C#原生调用YOLOv11/v12:工业视觉检测零语言壁垒全流程

本文介绍了一种基于C#和ONNX Runtime的工业视觉检测解决方案,解决了传统YOLO模型在工业应用中面临的三大痛点:语言壁垒、性能损耗和模型更新困难。该系统采用三层架构设计,支持C#原生调用YOLO模型,无需中间件,性能损耗低于5%,满足工业产线30FPS+的实时性要求。文章详细阐述了环境搭建、模型导出规范、核心代码实现及工业级优化方案,提供可直接用于生产环境的完整流程,实现了训练与部署的解耦,显著降低了维护成本。该方案兼容主流YOLO版本,支持全平台部署,为工业视觉检测提供了高效可靠的C#集成方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 187

FastDFS安装 +SpringBoot Demo

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、 文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的 在线服务,如相册网站、视频网站等等

weixin_59230567的博客 1689

Android SELinux——neverallow问题处理(十六)

遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级,系统对 SELinux 的管控越来越严,增加了大量的 neverallow。一般情况下,向默认标签授予权限的做法是错误的,其中许多权限都是 neverallow 规则所不允许的。按照上面方法去添加 SELinux 可能会违反了 neverallow 规则,编译时候会报 neverallow 相关的错误。

小旭的专栏 2681

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

FastDFS 开发:通过 Java 反射修改 Tracker 返回的 Storage 内网 IP

本文针对Docker部署FastDFS时本地开发环境无法访问Storage节点的问题,提出了一种基于Java反射的解决方案。当Tracker返回Docker内网IP导致外部访问失败时,通过反射机制修改StorageServer的inetSockAddr属性,将其替换为可访问的外网IP地址。该方法在获取StorageClient1连接时进行IP重写,有效解决了本地调试时的网络连通性问题,为开发测试提供了便利。

weixin_44245162的博客 422

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

win10下docker搭建fastDFS

win10下docker搭建fastDFS 最近因公司需求,搭建自己的文件服务器,不再使用oss。于是在本地开发环境win10下先整个demo出来。 docker下安装fastDFS win10下 docker的教程自己百度吧。 查找镜像 使用$ docker search fastdfs 拉取镜像 $ docker image pull delron/fastdfs 运行tracker $ ...

qq_27576109的博客 8835

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

FastDFS的介绍与入门Demo

一、介绍 FastDFS 是用 c 语言编写的一款开源的分布式文件系统,由阿里巴巴公司开发。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 二、FastDFS的架构 FastDFS 架构包括 Tracker server 和 Storage server。...

Wim的博客 650

docker搭建单机FastDFS文件存储服务器

目录一、FastDFS是什么?二、工作原理1.FastDFS服务端角色2.工作原理3.工作流程二、Linux环境配置1.下载所需要的包2.安装依赖1.12.读入数据总结 一、FastDFS是什么? FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括: 文件存储 文件同步 文件访问(文件上传、文件下载)等 解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重

Valiners的博客 1367

fastDFS概述

一、 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker ...

Lee_0610的博客 266

FastDFS上传文件Demo--springboot实现

养成习惯,先赞后看!!! 目录1.前言2.步骤2.1clone并将客户端导入到项目2.2导入FastDFS客户端的依赖2.3创建并配置Tracker的配置信息2.4编写上传文件的工具类3. 上传演示 1.前言 今天跟着教程后面终于实现了通过springboot将文件上传到FastDFS里面,还是有点小激动的,今天把过程分享出来,希望能够帮助到大家。 还不知道FastDFS怎么安装或者是怎么整合Nginx的朋友,可以去看我之前的这两篇文章: 分布式文件存储系统fastdfs安装教程 整合FastDFS与Ngi

lovely__RR的博客 599

FastDFS在分布式项目中的应用

最近面试中经常介绍该项目模块,此博文将对FastDFS进行详细介绍以及具体使用 首先了解什么是分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地 节点上,而是通过计算机网络与节点相连。 通俗来讲: 传统文件系统管理的文件就存储在本机。 分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无...

qq_44779506的博客 615

关于fastDFS测试javaDemo报错的问题解决

Exception in thread “main” org.csource.common.MyException: the value of item “tracker_server” is invalid, the correct format is host:port at org.csource.fastdfs.ClientGlobal.init(ClientGlobal.java:103) at com.offcn.text.TestStorageClient.main(TestStora...

Zzzzby的博客 1073

FastDFS安装、入门小demo以及文件的上传和下载

分布式文件服务器FastDFS 5.1什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage se...

qq_992833908 308

分布式文件服务器——FastDFS

什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文

your_棒棒糖的博客 1011

FastDFS快速入门

分布式文件服务器FastDFS 1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由

BKKBjams的博客 367
上一篇: myeclipse打不开了,进度条进到十分之一就闪退,什么提示都没有
下一篇: FastDFS安装配置-超详细版
outdata
博客等级 码龄10年 7粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值