INEVITY's Blog

tech life

Minio设计原则

May 27, 2016

Minio 极简设计原则

特意设计

服务器和客户端几乎没有任何选项设置。例如Minio 客户端mc 提供ls,cp,sync,diff等类似操作系统提供的工具。这些命令在大多数操作系统下透明支持云和本地文件系统。提供了较为强大的功能比如控制台颜色输出,格式友好的数,透明校验,但没手册页面。

采用Golang

服务器和客户端都是用golang开发的。golang的好处多多。

数据不更改

Minio只用来存储不再改变的数据。比如图片,视频,文档,机器log,一旦生成,就不会再改变。没有必要实现功能丰富的posix/nfs/iscsi协议。Minio有意没去实现删除、重明白、附加写、重写等操作(注后来又实现了删除,但在纠错码实现中仍然没有支持删除)。所有应用程序需要调用的只是get/put/list等Http(s) API。并且实现成原子操作,要么失败,要么成功。

兼容s3标准对象API

服务器、客户端、SDK库支持Amazon S3 v4 API的子集。 类似IAM policy management, delete/rename and object versioning 等功能没有去实现。

简化许可

GNU GPLv3