2作者: ebogdum大约 1 个月前原帖
我们在又一次深夜“上传文件为什么消失了?”的事件后,启动了CallFS。我们的团队将rsync、一个脆弱的NFS挂载和一个S3桶拼凑在一起——这些都不可观察,随时可能给我们带来麻烦。 因此,我们用Go语言编写了一个单进程文件服务,具备以下功能: • 支持S3 API(以便现有工具可以正常工作)。 • 将热数据存储在本地磁盘上以提高速度;冷数据可以存放在任何兼容S3的桶中。 • 默认暴露Prometheus指标和JSON日志,因为“发生了什么?”不应该是猜测。 • 作为一个约25 MB的静态二进制文件发布——没有外部依赖,采用MIT许可证。 今天,它在单节点或并行部署中都非常稳定。集群功能在开发计划中,后续将支持复制,但我们希望尽早分享代码,并听取实际使用中的痛点。如果存储的胶水代码曾让你的周末变得糟糕,我们非常欢迎反馈和PR(拉取请求)。