使用fastdfs文件服务器进行上传下载删除

FastDFS常用命令 准备工作 修改/etc/fdfs/client.conf base_path=/home/hc/fastdfs tracker_server=172.16.85.140:22122 监控服务器状态命令:fdfs_monitor /usr/bin/fdfs_monitor /etc/fdfs/client.conf 上传文件命令:fdfs_upload_file /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /etc/fdfs/anti-steal.j 阅读详情

fdfs_config.properties 配置

storeType=FastDfs
tracker_server=106.164.131.1167:22122 //根据自己的服务器地址配置
fdfsread_server=106.164.131.1167
uap.system.properties.mode=1
defaultBucketFull=uappr
defaultBucket=uappr
defaultBucketRead=uapread

application-dev.yml 配置

server:
   fastdfs:
       fileUrl: http://106.164.131.1167:22122

geteWay 配置

application-dev.yml
	zuul:
	   routes:
	      fastdfs:
	         path: /workbench-api/group1/**
	         url: http://106.164.131.1167:20050/group1/

上传、下载、删除工具类

public class FastdfsUtil{

	static{
		//读取本地resources 中的配置文件
		String filePath=Thread.currentThread().getContextClassLoader().getResoure("fdfs_config.properties").getPath().toString;
		//如果配置到华为云类似的服务器上是配置文件要与jar包同级 使用流的方式读取
		File file=new File("/data/config/fdfs_config.properties");
		String filePath=file.getPath();
		ClientGlobal.init(filePath);
	}




	//文件上传
	public static FastdfsPath uploadFile(String groupName,byte[] bytes,String extName){
		TrackerServer trackerServer=null;
		try{
			TrackerClient tracker=new TrackerClient();
			trackerServer=tracker.getConnectioon();
			StorageServer storageServer=tracker.getStoreStorage(trackerServer);
			//定义storage客户端对象,需要使用这个对象完成具体的上传下载删除操作
			StorageClient storageClient=new StorageClient(trackerServer,storageServer);
			String fileIds[] = storageClient.upload_file(groupName,bytes,extName,null);
			FastdfsPath fastdfsPath=new FastdfsPath();
			fastdfsPath.setHost(trackerServer.getInetSocketAddress().getHostString());
			fastdfsPath.setPort(trackerServer.getInetSocketAddress().getPort()+"");
			fastdfsPath.setGroupName(fileIds[0]);
			fastdfsPath.setRemoteFilename(fileIds[1]);
			return fastdfsPath;
			
		}catch(Exception e){
			new RuntimeException("文件服务器上传失败");
		}finally{
			if(trackerServer !=null){
				try{
					trackerServer.close();
				}catch(IOException e){
					new IOException("fastdfs connection close failed" + e.getMessage());
				}
			}
		}
		return null;
	}


	//文件下载
	public static byte[] downloadFile(String groupName,String fileName){
		TrackerServer trackerServer=null;
		try{
			TrackerClient tracker=new TrackerClient();
			trackerServer=tracker.getConnectioon();
			StorageServer storageServer=tracker.getStoreStorage(trackerServer);
			//定义storage客户端对象,需要使用这个对象完成具体的上传下载删除操作
			StorageClient storageClient=new StorageClient(trackerServer,storageServer);
			byte[] b=storageClient.download_file(groupName,fileName);
			return b;
			
		}catch(Exception e){
			new RuntimeException("文件服务器下载失败");
		}finally{
			if(trackerServer !=null){
				try{
					trackerServer.close();
				}catch(IOException e){
					new IOException("fastdfs connection close failed" + e.getMessage());
				}
			}
		}
		return null;
	}





	//文件删除
	public static int deleteFile(String groupName,String fileName){
		TrackerServer trackerServer=null;
		int result=0;
		try{
			TrackerClient tracker=new TrackerClient();
			trackerServer=tracker.getConnectioon();
			StorageServer storageServer=null;
			StorageClient storageClient=new StorageClient(trackerServer,storageServer);
			result=storageClient.delete_file(groupName,fileName);
			return b;
			
		}catch(Exception e){
			new RuntimeException("文件服务器删除文件失败");
		}finally{
			if(trackerServer !=null){
				try{
					trackerServer.close();
				}catch(IOException e){
					new IOException("fastdfs connection close failed" + e.getMessage());
				}
			}
		}
		return result
	}


	//将byte[]转为file
	public static File downloadIsFile(String url){
		String fileurl=url.replaceAll("/group1/","");
		int n =url.lastIndexOf(".");
		String ext=url.substring(n);
		byte[] fileByte = FastdfsUtil.downloadFile("group1",fileurl);
		int index=fileurl.lastIndexOf(".");
		int index2=fileurl.lastIndexOf("/");
		String falseFileName=fileurl.sunstring(index2+1,index);
		File file =File.createTempFile(falseFileName,ext);//假文件名
		BufferedOutputStream bos=null;
		FileOutputStream fos =null;
		try{
			fos=new FileOutputStream(file);
			bos=new BufferedOutputStream(fos);
			bos.write(fileByte);
		}catch(IOException e){
			new IOException("文件类型转换错误");
		}finally{
			if(bos!=null){
				bos.close();
			}
			if(fos!=null){
				fos.close();
			}
		}
		return file;
	}


}

组装信息返回类

@Data
public class FastdfsPath{
	private String host="";
	private String port="";
	private String groupName="";
	private String remoteFilename="";
	@Getter
	private String fullPath;

	public String getFullPath(){
		fullPath="http://"+host+":"+port+"/"+groupName+"/"+remoteFilename;
		return fullPath;
	}
}
fastdfs磁盘满,如何清除文件? 文章目录技术交流方式一:个人微信方式二:qq群 1 查看磁盘剩余空间 如果太高,可以清除图片存储的老图片文件。 # df -h 2 停止trackerd 与 storaged # /etc/init.d/fdfs_trackerd stop # /etc/init.d/fdfs_storaged stop 3 删除图片存储目录。 # rm /Data/apps/fastdfs/stora... 阅读详情

相关推荐

【python中级】 FastDFS删除文件服务器上的文件

在client.py脚本中定义了classFdfs_client。本博客涉及Fdfs_client类中的方法delete_file。如上,标识fastdfs服务器上已经成功删除了图片文件!如果是图片文件,可以通过浏览器预览。

jn10010537的博客 1519

FastDFS整合SpringBoot------文件上传、获取、下载、删除

结构如下: (1)导入依赖包 <dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0</version> </dependency> (2)...

wuzj1314的博客 2434

自动删除过期文件

C# VS2008 选择文件夹后可以自动监控,并删除过期文件,可设置删除几天前的任何类型的文件,有详细的源码解释

FastDFS清空数据及文件步骤

文章目录1、停止tracker、storage服务2、清空存储路径文件3、清空tracker和storage的base_path4、启动tracker和storage服务5、查看FastDFS状态 1、停止tracker、storage服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop /usr/bin/fdfs_storaged /etc/fdfs/storage-defaultgroup.conf stop 2、清空存储路径文件 rm -rf

willingtolove的博客 5249

ArcGIS Pro中协同区位熵方法在商业选址分析中的应用

本文详细介绍了如何利用ArcGIS Pro中的协同区位熵方法进行科学的商业选址分析。该方法通过量化目标客户与竞争对手在空间上的关联程度,精准识别市场空白区与竞争红海,帮助决策者从“凭感觉”转向“用数据说话”,有效提升选址成功率和投资回报。

weixin_29214559的博客 359

保姆级教程:用海康威视老版存储服务器+IVMS-4200搭建本地监控录像(附软件获取与开机自启)

最近在帮朋友搭建一套小型监控系统时,遇到了一个颇具挑战性的问题:手头有几台海康威视网络摄像头,但官方已经下架了配套的存储服务器软件。经过一周的摸索和测试,终于找到了一套可靠的解决方案。本文将完整分享从软件获取到系统稳定运行的全过程,特别适合那些不想额外购买NVR设备,又需要本地存储监控录像的个人用户或小型企业IT管理员。

weixin_30553777的博客 512

java开发在go-fastdfs文件服务器上传和删除文件。

最近在项目开发时候需要上传人员人脸照片至文件服务器go-fastdfs上,通过阅读官方文档:https://sjqzhang.github.io/go-fastdfs/#character,根据常规需求场景写了如下两个工具类方法,以供参考。 public class FileUtil { public static Response uploadFile(String domain, String group, String path, MultipartFile file) {...

qq_42401622的博客 2919

电商订单系统设计简析(一)

电商所有模块中,订单系统作为最为核心的模块,决定了整个流程能不能顺畅的执行,起着承上启下的作用。相信很多PM都不陌生,到了一家电商公司,总会觉得公司现有的流程有不少问题,因为问题来自四面八方,一下子摸不着到底是哪里出了问题,PM就跟补丁师傅一样,遇到一个补一个。其实很多日常开发和测试提得需求都是表面需求,而这些表面上呈现出的各种问题,都是源自于流程上的不完整或者流程上某个环节上的缺失导致的。订单系...

野蛮非先生的博客 9553

gofastdfs文件服务器,Spring boot集成Go-FastDFS实现图片上传删除等功能实现

一.背景工作中接触到需要采集并管理大量图片的需求,本来是用的FastDFS,但是发现实际情况是在项目实施时难以找到linux服务器去安装FastDFS,所以经过调研,选择了可以在windows服务器上安装部署的Go-FastDFS文件服务器二.Go-FastDFS简介go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,...

weixin_36360255的博客 1930

【提示学习代码】CoOp代码详读

CoOp是对CLIP的改进工作,主要是对prompt进行学习从而不用来手动设置prompt。自定义CLIP模型:上述两个模块结合而成的CLIP。文本编码器,接收文本的输入,并输出相应的编码表示。将图像和文本进行编码并计算它们之间的相似性。permute后变成了(4,2,3)Prompt学习器,用于学习生成提示。

weixin_51293984的博客 5815

ISP调试工程师相关面试问题_001

Qualcomm、MTK等ISP pipeline的框架原理及算法原理,还有调试经验。

notgoodenouf的博客 3544

docker容器+fastdfs搭建文件服务器--springboot整合文件服务器实现文件上传, 下载, 删除

docker容器+fastdfs搭建文件服务器Linux安装dockerdocker拉取fastdfs镜像构建容器构建tracker容器(跟踪服务器,起到调度的作用)构建storage容器(存储服务器,提供容量和备份服务)配置storage端口和Nginx端口(尽量一致)配置storage端口配置nginx端口关闭防火墙(最好是暴露端口) Linux安装docker docker拉取fastdfs镜像 该镜像已经整合了nginx 构建容器 构建tracker容器(跟踪服务器,起到调度的作用) 创建挂载目

个人博客 1418

手把手教您解决 AdGuard Home DNS重写功能失效的问题

AdGuard Home 设置了 DNS 重写,规则明明没问题,客户端却死活解析不到内网 IP?🤯 别急着重装!🚫 本文手把手教你如何解决软路由 DNS 解析“玄学”故障!🛠️🚀

XiaoqiangClub的博客 912

CentOS8 FastDFS文件服务器搭建-配合nginx url访问

CentOS8 FastDFS文件服务器 1. 下载并解压所需安装包 Fast DFS文件服务器官网源码下载地址 注:需要gcc环境,我的在安装mysql时就安装了 cd /home/hanhuibing/workspace/fastdfs-packages # -S print server response # -O write documents to file wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz -SO

Cohen 奕博的博客 859

19、硬件工程师笔试面试——无线通讯模块(2025版本)

例如,如果你的项目需要传输大量数据,如视频流或大数据文件,那么你可能需要一个高速率的模块,如支持802.11ac或802.11ax(WiFi 6)的模块。如果你的数据传输需求较小,如传感器数据,那么一个较低速率的模块,如蓝牙或Zigbee,可能就足够了。较高的频率(如5GHz)提供更大的带宽,支持更高的数据传输速率,但信号覆盖范围较小,穿透能力较弱。例如,在蓝牙通信中,一台设备作为主机,另一台设备作为从机,它们通过频率跳频的方式确定连接,并在连接建立后通过特定的协议进行数据交换。

XU157303764的博客 3226

基于STC8G1K08A单片机的7位PWM输出程序(PCA功能实现呼吸灯效果)

摘要:本文展示了基于STC8G单片机的PWM占空比控制实现。通过定时器0中断每5ms调整占空比(0-127范围),实现呼吸灯效果。关键代码包括:1)PWM初始化(7位PWM模式);2)定时器配置(1ms中断);3)主循环根据标志位动态调整占空比。硬件采用P5.4引脚输出PWM信号,通过direction标志实现占空比自动增减循环。该方案适用于LED亮度调节等场景,系统时钟24MHz,采用12T模式。

weixin_74013772的博客 864

fastdfs 文件服务器

背景:spring ,spring MVC,已拥有所需的jar,配置了文件解析器,fastdfs已部署前端(记得在form加上属性method="post" enctype="multipart/form-data")http://blog.youkuaiyun.com/hunwanjie/article/details/79642159后台spring mvc    注入(别忘了xml加依赖):@Autow...

hunwanjie的博客 324

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

FastDFS——文件上传失败问题(java.io.IOException: recv package size -1 != 10)

FastDFS文件上传失败问题(java.io.IOException: recv package size -1 != 10) 文章目录FastDFS文件上传失败问题(java.io.IOException: recv package size -1 != 10)前言一、情景再现1.出事代码2.文件上传异常3.异常情况分析二、解决方案1.初始化注入StorageClient对象2.使用连接池 前言 需求分析:本来是一个很简单的操作,往文件服务器上传文件,并将冗余文件进行删除操作。 一、情景再现 1.出

WoodYangOY的博客 7007

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java FastDFS操作方法封装

Java FastDFS操作方法封装

weixin_43869090的博客 309

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

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

springboot2.x整合fastDfs

如果需要自己搭建文件服务器请移步:fastDfs安装配置教程 springboot整合fastDfs pom.xml添加配置 <!-- https://mvnrepository.com/artifact/com.github.tobato/fastdfs-client --> <dependency> <g...

han949417140的博客 1185

dfs文件服务器访问权限,fastDFS 文件服务器访问

鉴权 token 获取token 由文件服务器管理员分配接口定义上传文件请求 URL:请求方式:GET/POST参数形式:form-data参数:参数名位置类型说明是否必填access_tokenheaderString用户 token是fileurlMultipartFile文件是返回:参数名必选类型说明msg是String提示code是Integer错误代码data是String数据data ...

weixin_35189483的博客 1774

【FastDFS】FastDFS学习手册

一、FastDFS 概述 1.1 什么是 FastDFS FastDFS 是一个开源的轻量级分布式文件系统,它用于对文件进行管理,功能包括:文件存储、文件同步、文件访问(上传和下载)等,解决了大容量存储和负载均衡的问题。适合以文件为载体的在线服务,如相册网站、视频网站等。 由于FastDFS 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS 能很容易地搭建一套高性能的文件服务器集群提供文件的上传、下载等服务。 1.2FastDFS 工作流程 ...

qq_34416331的博客 388

docker安装fastDFS文件存储,并与springMVC集成

因为项目需要搭建文件服务器,研究后,最后选型FastDFS分布式文件存储系统。 由于docker镜像安装的方便化,所以决定采用docker安装。 拉取镜像 docker pull morunchang/fastdfs 查看镜像 [root@iZh3cshm0xz7wjZ ~]# docker images REPOSITORY T...

u014526891的博客 1万+

minio文件服务器备份,springboot2.2.X手册:放弃fastdfs,整合Minio做文件服务器真香...

溪云阁:专注编程教学,架构,JAVA,Python,微服务,机器学习等,欢迎关注获取源码,篇幅较长,建议先收藏。目录 什么是MinioMinio是Apcche旗下的一款开源的轻量级文件服务器,基于对象存储,协议是基于Apache License v2.0,开源可用于商务。Minio主要用来存储非结构化的数据,类似文件,图片,照片,日志文件,各类备份文件等,按照官网描述,文件的大小从几KB到5TB。...

weixin_42666807的博客 1175

Spring Boot 整合 FastDFS 客户端

原文地址:Spring Boot 整合 FastDFS 客户端 博客地址:http://www.extlight.com 一、前言 前两篇介绍整体上介绍了通过 Nginx 和 FastDFS 的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍 Spring Boot 整合 FastDFS 客户端来实现对图片/文件服务器的访问。 如果有不了解 ...

月光中的污点 3031

springboot使用fastDFS做文件上传的前后端分离案例

1、 搭建fastDFS文件服务器 1)安装fastDFS tracker和storage 2)在storage server上安装nginx 在storage server上安装nginx的目的是对外通过http访问storage server上的文件。 使用nginx的模块FastDFS-nginx-module,它的作用是通过http方式访问storage中的文件,当storage本机没有要 找的文件时向源storage主机代理请求文件。 3)在安装图片服务代理 图片服务代理的作用是负载均衡,根据st

小爽帅到拖网速的博客 576
上一篇: 使用response存储文件流进行页面文件下载
下一篇: 使用http请求第三方接口的几种方式
Yangsir_java
博客等级 码龄7年 4粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值