初了解minio
Minio 是一个基于 Apache License v2.0 开源协议的**对象存储服务**。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。。...
初了解minio
了解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项目,导入依赖
我们入门使用的依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.3</version>
</dependency>
本案例需要使用的辅助依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
再编写一个测试类
import io.minio.*;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.FileInputStream;
public class MinioDemo {
//1. 创建一个客户端
//获取客户端对象
MinioClient client = MinioClient.builder().endpoint("http://localhost:9000") //本地ip+端口号
.credentials("minioadmin", "minioadmin") //用户名和密码
.build();
//2. 创建一个Bucket(桶)
@Test
public void createBucket() throws Exception{
//这里参数就是很智能的可以生成.鼠标光标会放在.build前,我门只需要加上桶名就行
client.makeBucket(MakeBucketArgs.builder().bucket("aaa").build());
}
//3. 判断这个桶是否存在
@Test
public void bucketExist() throws Exception{
boolean result = client.bucketExists(BucketExistsArgs.builder().bucket("aaa").build());
System.out.println(result);
}
//4. 给桶中放对象(文件) 有两种方法: 1.使用putObject() 2使用uploadObject() 有点小不同
@Test
public void reloadTest() throws Exception{
//方法一 1.使用putObject()
File file = new File("d:\\Pictures\\Camera Roll\\微信图片_20211106080029.png");
FileInputStream fps = new FileInputStream(file);
client.putObject(PutObjectArgs.builder()
.bucket("aaa") //桶名
.object("ooo.jpg") //要生成的对象名
.stream(fps,file.length(),-1)
.contentType("image/jpeg")
.build());
//方法二2使用uploadObject()
client.uploadObject(UploadObjectArgs.builder()
.bucket("aaa") //桶名
.object("ppp.jpg") //要生成的对象名
.filename("d:\\Pictures\\Camera Roll\\1636156989(1).jpg") //要上传的文件在本地的路径
.build());
}
}
这个代码可以分布完成,就比较清楚了,
-
上面代码一二步骤执行完成后,我们可以先不用着急一步完成所有代码,先可以使用使用浏览器访问下linio服务器,登录成功可视化界面后可以看到[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qsVNjJ2N-1658915566173)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1658848276001.png)]
-
我们的名字叫aaa的桶已经创建完成了,接下来再编写第三步的代码进行一个验证,看在控制台是否可以打印出true.
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kihfChVv-1658915566179)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1658848483791.png)]
-
然后就可以编写第四步.完成后可以去浏览器中查看对象是否已经上传成功.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RVFHiqe-1658915566181)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1658848678645.png)]
如果没有显示的话可以刷新下网页,或者点击箭头指向的Browse进行查看.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-srh89Tca-1658915566183)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1658848941756.png)]
这样就已经完成啦一个小小的案例编写.
重复三遍就记住啦!!!
<总之还是那句话:对象存储服务是一种云存储服务,用来存储对象(图⽚、视频、⽇志⽂件、备份数据)
minio就是一种对象存储服务,用来存储对象
这样就已经完成啦一个小小的案例编写.
重复三遍就记住啦!!!
<总之还是那句话:对象存储服务是一种云存储服务,用来存储对象(图⽚、视频、⽇志⽂件、备份数据)
minio就是一种对象存储服务,用来存储对象
自己写着学习的,有问题的,请各位指正,感谢Thanks♪(・ω・)ノ
更多推荐
所有评论(0)