sjqzhang / go-fastdfs

go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic repair.(similar fastdfs).
https://gitee.com/sjqzhang/go-fastdfs
The Unlicense
3.94k stars 747 forks source link

在容器下,文件去重功能失效; #430

Closed saytesnake closed 1 year ago

saytesnake commented 1 year ago

各位好,

不知道此项目是否还在维护,

我们应用对 Go-FastDFS 的要求较低,也没有所谓的海量存储要求,所以我们一般就比较随意地启动一个容器就这么用了。

就在前几天因为应用 Bug 导致文件多次重复上传,磁盘爆满了,才发现文件去重功能是不生效的,即重复上传之后,同一分钟内,上传至同目录,会自动重命名,超过一分钟,则会另起文件夹上传。

百般无解之下,用二进制文件启动,一切正常,随后就开始以下操作试图找到原因,

1、换 ubuntu:20.04 为基础镜像重新做了一次镜像,排查是否是 alpine 基础镜像的问题; 2、使用容器 bash 启动,安装 curl,手动在容器内启动 fileserver server,开另外一个 shell 窗口 exec 进容器内,重复上传任意文件,试图规避容器启动或外部的原因,也排掉 GO_FASTDFS_DIR 变量的问题(此时数据目录就是 /usr/local/go-fastdfs); 3、使用特权启动 --privileged; 4、更新至 v1.4.5 即当前最新版本;

均问题依旧,因为不懂 Go 代码,我无法找到原因。

诚然用二进制文件外加 systemd 也不是啥难事,如果也有正在使用 Go-FastDFS 容器的朋友,这个应该值得注意。

sjqzhang commented 1 year ago

使用自带的Dockerfile进行构建或拉最新的镜像。