目前筛选出两个一样是 GoLang 实现的文件系统,今天仔细调研一下html
minio | seaweedFS |
---|---|
它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM映像。对象的大小能够从几KB到最大5TB。 | SeaweedFS是一个简单且高度可扩展的分布式文件系统,两个目标: 一、存储数十亿的文件! 二、查看档案快! |
minio、seaweedFS 均为 goLang 编写,均可以交叉编译为「全平台」支持,都提供了官方 「docker」 镜像java
seaweedFS 对外供给 REST 接口 , 实现主要参考了 facebook 的论文: 《Finding a needle in Haystack: Facebook’s photo storage》nginx
注:此集群为单机多租户,非 「swarm」或「k8s」意义上的集群git
登陆须要的 公钥、私钥在 docker-compose 查看登陆秘钥github
能够考虑将 COMPANYID 做为 「桶」... 图片、文档、html 做为 「对象」web
简单跑了一下,可是至少是 JDK8+ ,7无法编译(最新的jar是8+)docker
这里要注意 ! 若是 openResty 直接代理 minio 的 9000 端口,那么须要保证这个桶是公开的,不然须要写 LUA 脚本作验证 「虽然目前也没有存储什么敏感数据,可是这点早晚要考虑」异步
我使用 java client + 私钥 测试的,读对象只须要「桶」「对象名」两个参数便可。分布式
成功上传
web 端查看结果
minio 客户端 :mc 能够很是可靠的快速的大规模迁移数据
下章整理发布 《分布式文件系统迁移的经验》
相比之下没有网页上传的功能,测试同窗就没法为研发分担部分压力。
SeaweedFs 的 wiki 分几块:
restFull API、文件管理、配置、异步复制、操做(备份、k8s部署)、安全
和 SeaweedFs 共同对比,没有发现什么刚需的功能点必需要选择 SeaweedFs 的,从「社区」「开发实力」 感受仍是 MINIO 从易用性来讲应该比 SeaweedFs 更适合咱们,不管是服务仍是工具也更全面SeaweedFs 虽然是国人写的项目,但对国人也没有很友好,Issues 处理及时率较低,不管是企业使用,仍是我的使用,我都偏向于推荐 Minio。