FastDFS报错 : com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件的解决办法

com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件
文末有命令的总结 本文仅供参考,文件路径以及文件的删除等需要按照自己虚拟机的配置来写

首先查看我们项目中的配置文件是否和虚拟机的ip地址 ifConfig ens33查看虚拟机ip 相同:如图:
配置文件截图
如果配置相同仍然出现此问题,我们可以进入虚拟机使用命令:more docker-compose.yml命令查看我们服务的ip是否和虚拟机的ip相同,大多数找不到错误原因的问题都是因为两个ip不同导致的, 我的是修改过的 如图:虚拟机截图
既然我们找到了问题那我们就先进到服务的目录中,我的目录是cd /root/docker-file/fastdfs/使用命令vi docker-compose.yml 进入编辑模式修改ip地址,修改完使用命令先按Esc键,然后输入一个英文冒号,然后输入wq
然后使用命令 docker stop storage tracher 将镜像停止了
使用命令删除tracker服务 docker rm storage tracker
进入 cd /data/fastdfs/目录 ll 命令查看所有文件
然后将所有文件删除 rm -rf *
然后进入cd /root/docker-file/fastdfs/目录下,
docker-compose up -d 启动所有服务
docker ps -a 查看服务是否启动 up 为启动成功
下图为启动成功:
在这里插入图片描述

再去测试代码应该就可以了

命令总结:

	ifConfig ens33              查看虚拟机ip
	cd /root/docker-file/fastdfs/  进入目录
	more docker-compose.yml     查看配置文件
	vi docker-compose.yml       修改配置文件
	wq                          保存并退出
	docker stop storage tracher 停止tracher服务
	docker rm storage tracher   删除服务
	cd /data/fastdfs/           进入date目录下fastdfs文件中
	ll                          查看所有文件
	rm -rf *                    删除所有文件
	cd /root/docker-file/fastdfs/ 进入root目录下的fastdfs文件中
	docker-compose up -d        创建容器并启动所有服务
	docker ps -a				查看所有服务	
在编译 FastDFS 时遇到错误提示不到 `fastcommon/logger.h` 头文件,通常是由于 FastDFS 的依赖库 `libfastcommon` 没有正确安装安装路径不正确所导致的。以下是解决此类问题的详细分析和处理方法: ### 1. 确认 `libfastcommon` 是否已安装 `FastDFS` 依赖于 `libfastcommon` 库,该库提供了日志、网络、文件操作等基础功能。如果 `logger.h` 文件缺失,说明 `libfastcommon` 可能未被正确安装。 - 下载 `libfastcommon` 源码并编译安装: ```bash git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon ./make.sh sudo ./make.sh install ``` - 安装完成后,确认头文件路径是否存在: ```bash ls /usr/include/fastcommon/logger.h ``` ### 2. 检查 FastDFS 编译配置中的头文件路径 在编译 FastDFS 时,需要确保编译器能够到 `libfastcommon` 提供的头文件。通常需要在编译命令中指定头文件搜索路径。例如: ```bash cc -I../common -I/usr/include/fastcommon -c ../common/fdfs_global.c ``` 如果编译脚本中没有正确包含 `/usr/include/fastcommon`,则会导致 `logger.h` 不到的问题。可以修改 FastDFS 的编译脚本,确保 `CORE_INCS` 中包含正确的路径: ```bash CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" ``` ### 3. 确认文件系统路径一致性 有时 FastDFS 安装过程中默认路径与实际路径不一致,也可能导致编译运行时错误。例如,某些配置文件文件可能期望在 `/usr/local/include/` 下查,但实际安装路径为 `/usr/include/`。此时需要手动创建符号链接调整路径配置。 例如,创建符号链接: ```bash sudo ln -s /usr/include/fastcommon /usr/local/include/fastcommon sudo ln -s /usr/include/fastdfs /usr/local/include/fastdfs ``` ### 4. 检查文件权限和路径是否存在 如果系统提示无法访问某些目录(如 `/home/yuqing/fastdfs`),可以手动创建该目录并设置正确的权限[^2]: ```bash mkdir -p /home/yuqing/fastdfs chmod 755 /home/yuqing/fastdfs ``` ### 5. 验证 FastDFS 安装完整性 确保所有 FastDFS 相关组件(如 `fastdfs-nginx-module`)的配置文件路径正确。例如,将 `mod_fastdfs.conf` 拷贝至 `/etc/fdfs/` 目录下: ```bash cp mod_fastdfs.conf /etc/fdfs/ ``` ### 示例代码:FastDFS 文件上传接口(供参考) 以下是一个基于 Spring Boot 的 FastDFS 文件上传接口示例: ```java @PostMapping("/upload") public Result upload(@RequestParam("file") MultipartFile file) { try { if (file == null) { throw new RuntimeException("文件不存在"); } String originalFilename = file.getOriginalFilename(); if (StringUtils.isEmpty(originalFilename)) { throw new RuntimeException("文件名为空"); } String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1); byte[] content = file.getBytes(); FastDFSFile fastDFSFile = new FastDFSFile(originalFilename, content, extName); String[] uploadResult = FastDFSClient.upload(fastDFSFile); String url = FastDFSClient.getTrackerUrl() + "/" + uploadResult[0] + "/" + uploadResult[1]; return new Result(true, StatusCode.OK, "文件上传成功", url); } catch (Exception e) { e.printStackTrace(); } return new Result(false, StatusCode.ERROR, "文件上传失败"); } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Donne_CN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值