前言
今天是除夕夜,祝大家新年快乐,万事如意,平平安安,健健康康。
今天的主题是对象储存,对象存储相信大家都不陌生,绝大多数人都使用过比如阿里云七牛云腾讯云的OSS或者开源的轻量级分布式文件系统FastDFS,而今天的主角是Minio,为什么是Minio呢,因为最近的项目里使用了,而且使用感觉还不错,用小又便捷来形容很恰当。所以特地向大家安利一下这款开源的友好的对象存储。 老规矩,先看看官方的图,从图里我们可以很清楚的看到目前Minio的生态已经做得很不错了,支持公有和私人云还有K8s的部署支持,看着是不是高大上,但是看着肯定是不行的,要用着好才是真的。 目前Minio的支持就开发层面来说支持单机也支持分布式部署,既然说到支持分布式,那肯定也有分布式系统的特点,容错性,即与FastDFS具有一样的特性。今天我们就先来看看怎么去单机部署和实现文件存储。 Minio单机版安装和实现
1.既然是单机版,那就选择最简单的windows版安装过程很简单,都是下一步一直到底就行了,然后就是配置AK,这个过程很简单就不赘述了。
2.上传的核心代码
1)上传包含bucket 文件名 文件流 文件大小 文件类型
public void uploadFile(String bucketName, String objectName, InputStream stream, long size, String contextType) throws Exception { client.putObject(bucketName, objectName, stream, size, contextType); } 复制代码
2)创建bucket 众所周知bucket是很重要的 要先创建
public void createBucket(String bucketName) { if (!client.bucketExists(bucketName)) { client.makeBucket(bucketName); } } 复制代码
3)根据buckt获取bucket下的所有文件
public Optional<Bucket> getBucket(String bucketName) { return client.listBuckets().stream().filter(b -> b.name().equals(bucketName)).findFirst(); } 复制代码
小结 Minio很小,而且很好用,感兴趣的小伙伴可以试试,以前一直使用的是FastDFS,说实话有点重了,如果小型项目使用Minio真的很可以。