在fastDFS中,默认后缀长度最大为 6个字节;在上传超过6位后缀长度的文件时,后缀被截断,如下图,我在上传后缀为 .safetensors,最终被截断为 .safete
Linux 中,fastDFS 6.06
Java中,fastdfs-client-1.27.2.jar
我需要上传文件扩展名很长的文件到fastdfs,但是发现扩展名总是会被截取,追了一下发现是Constants限制了FDFS_FILE_EXT_NAME_MAX_LEN = 6 ,请问这个参数可以配置吗?应该怎么修改呢? 在我将otherConstants类里的FDFS_FILE_EXT_NAME_MAX_LEN的值从6改到16时, 尝试传一张后缀长的文件时,会报错无效参数, 原因是服务器上的fastDFS源码(c语言编写的那个)的commons包下fdfs_global.h中FDFS_FILE_EXT_NAME_MAX_LEN=6, 于是将6改为16, make.sh重新编译后, 解决了传后缀长文件的问题。
具体修改操作如下:
-
Linux中:
-
进入安装fastDFS目录下的common包下,修改fdfs_global.h文件,将#define FDFS_FILE_EXT_NAME_MAX_LEN 6 改为 #define FDFS_FILE_EXT_NAME_MAX_LEN 16
代码如下:# 进入安装fastDFS路径下的common包 cd /home/fastdfs/fastdfs-6.06/common sudo vim fdfs_global.h
- 上述操作需要重新编译 ,代码如下:
# 进入fastDFS安装包下 cd /home/fastdfs/fastdfs-6.06 # 清理编译信息 sudo ./make.sh clean # 编译 sudo ./make.sh sudo ./make.sh install
- 重启tracker 和 storage,代码如下:
# 关闭tracker服务 sudo fdfs_trackerd /etc/fdfs/tracker.conf stop # 启动tracker服务 sudo fdfs_trackerd /etc/fdfs/tracker.conf start # 关闭storage服务 sudo fdfs_storaged /etc/fdfs/storage.conf stop # 启动storage服务 sudo fdfs_storaged /etc/fdfs/storage.conf start
-
-
Java中:
下载,修改 com.github.tobato.fastdfs.domain.proto.OtherConstants 中FDFS_FILE_EXT_NAME_MAX_LEN = 16 重新编译成jar包,替换原有jar即可。
最终成功上传。