fastdfs上传报错 recv package size -1 != 10

本文探讨了在Spring Boot项目中使用FastDFS上传文件时出现的recvpackagesize-1!=10错误。分析了错误产生的可能原因,包括连接管理不当,并提供了解决方案,如注释@Service注解或在uploadFile方法中重新建立连接。

fastdfs上传报错 recv package size -1 != 10

我遇到这样的问题是因为把之前的spring项目重构成boot项目,当上传文件第一次会失败,第二次才会成功。在fastManage类中加了@service注解,boot启动时会扫描带注解的类,该类中的方法是静态的,会执行一次,当使用uploadFile方法时,会再次连接fastdfs服务器,个人猜想有两种可能报这个错,第一,覆盖之前的连接,第二,再建立一个连接。

解决办法:
1.类头部@service注释掉
2.在调用uploadFile方法体中重新再连接一次
trackerClient = new TrackerClient();
trackerServer = trackerClient.getConnection();
storageServer = new StorageServer(storageServerIp, Integer.valueOf(storageServerPort), 0);
storageClient = new StorageClient(trackerServer, storageServer);
在这里插入图片描述

### 命令作用 执行 `./configure --prefix=/app/nginx --add-module=/app/fast/fastdfs-nginx-module/src` 命令主要用于对软件进行配置,为后续的编译和安装做准备。 - `--prefix=/app/nginx`:该选项指定了软件的安装路径。当后续执行 `make install` 命令时,软件将会被安装到 `/app/nginx` 目录下。这样可以方便地管理软件,并且在需要卸载或迁移软件时,只需处理该指定目录即可。 - `--add-module=/app/fast/fastdfs-nginx-module/src`:此选项用于向软件(通常是 Nginx)添加一个额外的模块。这里的模块是 `fastdfs-nginx-module`,它可以让 Nginx 支持 FastDFS 分布式文件系统,使得 Nginx 能够处理 FastDFS 存储的文件的访问请求,实现文件的高效存储和分发。 ### 可能出现的问题及解决方法 #### 1. 依赖缺失问题 - **问题描述**:执行 `./configure` 时,可能会提示某些依赖库或工具缺失,导致配置失败。例如,缺少 `pcre`、`zlib` 等库,这些库通常是 Nginx 编译所必需的。 - **解决方法**:使用系统的包管理工具来安装缺失的依赖。以 Ubuntu 系统为例,可以使用以下命令安装常见的依赖: ```bash sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev ``` 对于 CentOS 系统,可以使用以下命令: ```bash sudo yum install -y pcre-devel zlib-devel openssl-devel ``` #### 2. 模块路径问题 - **问题描述**:如果指定的模块路径 `/app/fast/fastdfs-nginx-module/src` 不存在或者路径错误,`./configure` 会无法找到该模块,从而报错- **解决方法**:检查模块路径是否正确,确保 `fastdfs-nginx-module` 已经正确下载并解压到指定路径。可以使用 `ls` 命令来确认路径下是否存在相应的文件和目录。如果路径有误,修改 `--add-module` 选项的参数为正确的路径。 #### 3. 权限问题 - **问题描述**:如果当前用户没有足够的权限访问指定的安装路径 `/app/nginx` 或者模块路径 `/app/fast/fastdfs-nginx-module/src`,会导致配置过程中出现权限错误。 - **解决方法**:确保当前用户具有访问这些路径的权限。可以使用 `chown` 和 `chmod` 命令来修改文件和目录的权限。例如,将 `/app/nginx` 目录的所有者改为当前用户: ```bash sudo chown -R your_username:your_username /app/nginx ``` 其中 `your_username` 是你的用户名。 #### 4. 版本兼容性问题 - **问题描述**:`fastdfs-nginx-module` 模块的版本可能与当前使用的 Nginx 版本不兼容,导致配置失败。 - **解决方法**:检查 `fastdfs-nginx-module` 和 Nginx 的版本兼容性,尽量使用官方推荐的版本组合。可以在模块的官方文档或 GitHub 仓库中查找版本兼容性信息。如果版本不兼容,尝试下载兼容的版本进行替换。 ### 示例代码 以下是一个完整的安装 Nginx 并添加 `fastdfs-nginx-module` 模块的示例脚本: ```bash # 安装依赖 sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev # 下载 Nginx 和 fastdfs-nginx-module wget http://nginx.org/download/nginx-1.21.6.tar.gz wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.22.tar.gz # 解压文件 tar -zxvf nginx-1.21.6.tar.gz tar -zxvf V1.22.tar.gz # 进入 Nginx 目录并配置 cd nginx-1.21.6 ./configure --prefix=/app/nginx --add-module=../fastdfs-nginx-module-1.22/src # 编译和安装 make sudo make install ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值