【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南 (2)

去掉主入口函数,去掉application.properties配置文件(新建一个测试用的springboot项目,把配置文件拿过去)
剩下最重要的一步:在resources下创建META-INF/spring.factories文件,配置文件中加入需要自动装配的类

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.*(你的路径).MinioAutoConfiguration demo: import com.team.common.core.web.Result; import com.team.common.minio.MinioUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @Api(value = "uploadFile", tags = "文件上传") @RequestMapping("uploadFile") @RestController public class UploadFileController { @Autowired private MinioUtil minioUtil; @ApiOperation(value = "通用文件上传") @PutMapping("/upload") public Result uploadFile(@ApiParam("存储桶名称") String bucketName,@ApiParam("文件") MultipartFile file) { String url = null; try { url = minioUtil.putFile(bucketName,file); } catch (Exception e) { e.printStackTrace(); } return Result.success(url); } }

打包安装到maven仓库,本地测试用的同一仓库地址的话可以直接maven install,新建一个springboot项目,填入application.properties,pom中增加starter的依赖。

<dependency> <groupId>com.jxwy</groupId> <artifactId>minio-starter</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> 其他OSS服务对比 厂商支持

国内使用Ceph的厂商、基于Ceph进行自研的存储厂商都比较多,在使用过程中遇到的问题(有些时候,甚至需要修改、增强乃至重新实现Ceph本身的功能),可以向相关厂商寻求支持。国际方面,Ceph早已被红帽收购,而红帽近期又被IBM收购。

MinIO开发与支持的厂商只有MinIO公司。由于架构比较先进,语言高级,MinIO本身的程序比较容易读懂、修改。招聘Golang程序员来 维护MinIO所花费的成本,显然低于招聘c++程序员来维护Ceph。

多语言客户端SDK

二者均有常见编程语言的客户端,比如:python, java等。MinIO对象存储软件的开发SDK另外支持纯函数式的语言Haskell。

技术文档

内部实现的文档MinIO基本不存在。想要了解内部实现乃至参与开发的技术人员,只能到如下社区: ,与MinIO的开发人员直接交流,或者自己阅读代码。Ceph的各种实现文档、算法说明文档非常丰富。这方面Ceph要比MinIO成熟很多。

Ceph和MinIO的对比

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzswyw.html