初了解minio

梦里梦外; 2023-09-27 15:17 210阅读 0赞

了解minio前,我们先介绍下什么是对象存储服务.

对象存储服务OSS(Object Storage Service)是⼀种海量、安全、低成本、⾼可靠的云存储服务,适合存放任意类型的⽂件。容量和处理能⼒弹性扩展,多种存储类型供选择,全⾯优化存储成本。

对象存储最⼤的优势就在于它可以存储⼤容量的⾮结构化数据,例如图⽚、视频、⽇志⽂件、备份数据和容器/虚拟机镜像等。对于⼤多数的企业来说,这可以说是最为理想的存储媒介了。

对于业务已在公有云上的企业来说,使⽤公有云提供的 OSS 服务,可以很好的节省存储的成本,且⼀般都提供易接⼊的 SDK,以阿⾥云的OSS 服务为例,在存储介质的上层封装可标注的 RESTful API 接⼝,使⽤起来⼗分⽅便。

但是对于⼀些没有选择业务上云或者想要下云的企业来说,要使⽤公有云的 OSS,在公⽹带宽⽅⾯就需要有⼀定的投⼊,毕竟需要通过公⽹传输,带宽太⼩,传输速度就会慢,且在传输过程中数据的安全性和完整性也有损失的风险,⾛专线的费⽤⼜⼗分昂贵,不实在。

这种情况下,MinIO 就是⼀个不错的选择,⿇雀虽⼩,五脏俱全,企业可以以此快速构建⾃⼰内部的对象存储服务。

<总之一句话:对象存储服务是一种云存储服务,用来存储对象(图⽚、视频、⽇志⽂件、备份数据)

minio是什么?

Minio 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

Minio 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,类似 NodeJS, Redis 或者 MySQL。Minio 不仅提供了服务器、Web 访问、客户端,还提供了 Docker 安装,各种语言的 SDK、实例、实战秘籍等等,支持分布式部署。

minio的作用?

存储对象在minio服务器就不用把数据存储在当前的服务器内存中,减轻了服务器的压力,提供可用性.

Minio 的特点

1 部署简单,支持各种平台
2 海量存储,支持单个对象最大5TB
3 兼容 Amazon S3接口
4 SDK 支持:有类似 Java、Python 或 Go 等语言的 sdk 支持
5.存储多种后端。

MinIO快速⼊门案例

第一步:创建maven项目,导入依赖

  1. 我们入门使用的依赖
  2. <dependency>
  3. <groupId>io.minio</groupId>
  4. <artifactId>minio</artifactId>
  5. <version>8.3.3</version>
  6. </dependency>
  7. 本案例需要使用的辅助依赖
  8. <dependency>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-web</artifactId>
  11. <version>2.7.1</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-test</artifactId>
  16. <version>2.7.1</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>junit</groupId>
  20. <artifactId>junit</artifactId>
  21. <version>4.13.2</version>
  22. <scope>test</scope>
  23. </dependency>

再编写一个测试类

  1. import io.minio.*;
  2. import org.junit.jupiter.api.Test;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. public class MinioDemo {
  6. //1. 创建一个客户端
  7. //获取客户端对象
  8. MinioClient client = MinioClient.builder().endpoint("http://localhost:9000") //本地ip+端口号
  9. .credentials("minioadmin", "minioadmin") //用户名和密码
  10. .build();
  11. //2. 创建一个Bucket(桶)
  12. @Test
  13. public void createBucket() throws Exception{
  14. //这里参数就是很智能的可以生成.鼠标光标会放在.build前,我门只需要加上桶名就行
  15. client.makeBucket(MakeBucketArgs.builder().bucket("aaa").build());
  16. }
  17. //3. 判断这个桶是否存在
  18. @Test
  19. public void bucketExist() throws Exception{
  20. boolean result = client.bucketExists(BucketExistsArgs.builder().bucket("aaa").build());
  21. System.out.println(result);
  22. }
  23. //4. 给桶中放对象(文件) 有两种方法: 1.使用putObject() 2使用uploadObject() 有点小不同
  24. @Test
  25. public void reloadTest() throws Exception{
  26. //方法一 1.使用putObject()
  27. File file = new File("d:\\Pictures\\Camera Roll\\微信图片_20211106080029.png");
  28. FileInputStream fps = new FileInputStream(file);
  29. client.putObject(PutObjectArgs.builder()
  30. .bucket("aaa") //桶名
  31. .object("ooo.jpg") //要生成的对象名
  32. .stream(fps,file.length(),-1)
  33. .contentType("image/jpeg")
  34. .build());
  35. //方法二2使用uploadObject()
  36. client.uploadObject(UploadObjectArgs.builder()
  37. .bucket("aaa") //桶名
  38. .object("ppp.jpg") //要生成的对象名
  39. .filename("d:\\Pictures\\Camera Roll\\1636156989(1).jpg") //要上传的文件在本地的路径
  40. .build());
  41. }
  42. }

这个代码可以分布完成,就比较清楚了,

上面代码一二步骤执行完成后,我们可以先不用着急一步完成所有代码,先可以使用使用浏览器访问下linio服务器,
<总之还是那句话:对象存储服务是一种云存储服务,用来存储对象(图⽚、视频、⽇志⽂件、备份数据)

minio就是一种对象存储服务,用来存储对象

重复三遍就记住啦!!!

<总之还是那句话:对象存储服务是一种云存储服务,用来存储对象(图⽚、视频、⽇志⽂件、备份数据)

minio就是一种对象存储服务,用来存储对象

发表评论

表情:
评论列表 (有 0 条评论,210人围观)

还没有评论,来说两句吧...

相关阅读

    相关 了解minio

    了解minio前,我们先介绍下什么是对象存储服务. 对象存储服务OSS(Object Storage Service)是⼀种海量、安全、低成本、⾼可靠的云存储服务,适合存

    相关 UDDI了解

      在文章内容开始之前,先来看看一张图: ![在这里插入图片描述][5554cc5aa9b14826a2ffb90247af1d76.png]   从上面这个图看得到U

    相关 EF实体框架了解

      什么是实体(Entity),相信大家都认识过了,就是我们重构机房收费系统的时候,那个在三层之间负责传数据的层嘛。在一个作用域内数据类型是如何定义的。 一、实体

    相关 AJax了解

    AJax原理: 运用XHTML+CSS来表达信息 运用JavaScript操作DOM(Document Object Model)运行动态效果 运用XML和XSLT进行数据交换