Minio的使用方法

目录

1 环境搭建

2 使用方法

2.1 docker版

2.2 可执行程序版

2.3 同时挂载多个盘/文件夹的方式

2.4 MC的使用

3 服务端的类型

4 分布式部署的方式


1 环境搭建

简介:minio是一种专注于对象存储的软件,可以兼容亚马逊的s3接口,同时内置了webserver,运行主程序之后可以直接的使用网页进行连接。

从官网下载可执行程序或者是直接使用docker版。

官网连接:MinIO | The MinIO Quickstart Guide

2 使用方法

2.1 docker版

docker run -p 9000:9000 \ 
-e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \ 
-e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 
minio/minio server /data

这里的/data目录是docker中的目录而不是宿主机中的目录。上例中的minio_access_key和secret_key代表了网页端访问的用户名和密码。如果不设置的话默认都为minioadmin。

如需要将数据持久化,需要使用-v将内部的存储文件夹映射到外部。如下:

docker run -p 9000:9000 -v /mnt/disk/data1:/data1 minio/minio server /data1

2.2 可执行程序版

下载完毕可执行程序后给与可执行的权限,然后直接执行以下的指令就可以将宿主机中的/data文件夹作为数据存储目录来使用。

chmod +x minio minio server /data

还可以通过一下方式来指定IP和端口号启动,':'前边是客户机的地址,后边是端口号。通过设置环境变量的方式来指定登录的用户名和密码。

export MINIO_ACCESS_KEY=minio 
export MINIO_SECRET_KEY=miniopw 
./minio server --address :9019 /root/tdata/

2.3 同时挂载多个盘/文件夹的方式

经过测试,minio可以支持同时挂载多个文件夹,这个时候所有的文件夹中都有文件,但是这个文件并不是真实的文件,而是经过处理的文件,通过ls查看文件的属性和大小的时候并不是原始的大小。

#基本方法 
./minio server /mnt/data1 /mnt/data2 /mnt/data3 /mnt/dat4 

#简便方式 
./minio server /mnt/data{1...4}

如果所挂载的挂载点中存在了配置文件,那么运行这条命令的时候会显示初始化失败。

根据开发手册:在多个盘/文件夹上挂载minioserver 的时候,会自动使用纠错码,这种方式让存储到系统的文件在丢失一半盘的时候仍然可以恢复数据,同时恢复的数据是以对象为单位的。

使用这种方式所挂载的磁盘/文件夹的数量必须是4或16的倍数。

2.4 MC的使用

mc是minio的客户端,同样也可以使用docker版和二进制程序版。

使用mc的时候首先需要给服务器指定一个别名,下面的这条命令就是把位于指定IP和端口号上的服务器指定别名为mycloud。输入了这条指令之后还需要输入要登录到这个服务器的用户名和密码。

./mc alias set mycloud http://192.168.110.225:9003

使用了上述的操作时候以后就可以用简单的方式来执行mc的指令。

./mc ls mycloud #列出mycloud上的所有文件。

3 服务端的类型

服务端可以分为server和gateway两种方式。

从当前的测试来看,server方式在只可以在一个文件夹下运行一个实例。

gateway的方式可以在同一个文件夹下运行多个实例,就是说同一个文件夹可以运行多个minio。

这两种方式的配置文件完全不兼容,当之前挂载过其中一个之后,另外的一个将无法挂载,除非将文件夹中的配置文件删除。

关于gateway的几种方式,目前我只是测试使用nas的方式,但是具体这种方式的作用是什么,还没有学习到精髓,我需要再看一下指导文档。

4 分布式部署的方式

分布式部署采用如下的方式,但是分布式的部署还是必须要满足节点个数为4和4的倍数。

minio server http://192.168.110.225/mnt/data1 \ 
http://192.168.110.225/mnt/data2 \ 
http://192.168.110.225/mnt/data3 \ 
http://192.168.110.224/mnt/data1

上边的指令需要在每个分布式的机器上执行一遍,一模一样的指令,像上边的情况,只需要在两个机器上各执行一遍就可以了,也可以把IP地址替换成主机名,这个就涉及到DNS,或者手工的在hosts文件里边添加。

注意查看防火墙和Selinux有没有关闭,或者设定特定的端口通过。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Spring Boot中使用MinIO可以通过以下几个步骤: 1. 引入MinIO的依赖:在`pom.xml`文件中添加MinIO的依赖。 ```xml <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>RELEASE.2021-03-03T02-57-17Z</version> </dependency> ``` 2. 配置MinIO连接信息:在`application.properties`或`application.yml`文件中添加MinIO的连接信息。 ```properties # MinIO服务器的连接地址 minio.endpoint=http://localhost:9000 # MinIO服务器的访问密钥 minio.accessKey=minio-access-key # MinIO服务器的访问密钥 minio.secretKey=minio-secret-key ``` ```yaml minio: endpoint: http://localhost:9000 accessKey: minio-access-key secretKey: minio-secret-key ``` 3. 创建MinIO客户端:在Spring Boot的配置类中创建MinIO客户端的Bean。 ```java import io.minio.MinioClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MinioConfig { @Value("${minio.endpoint}") private String endpoint; @Value("${minio.accessKey}") private String accessKey; @Value("${minio.secretKey}") private String secretKey; @Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(endpoint) .credentials(accessKey, secretKey) .build(); } } ``` 4. 使用MinIO进行文件上传和下载:在需要使用MinIO的地方注入MinIO客户端,然后使用MinIO客户端的方法进行文件上传和下载操作。 ```java import io.minio.MinioClient; import io.minio.UploadObjectArgs; import io.minio.GetObjectArgs; @Service public class MinioService { private final MinioClient minioClient; public MinioService(MinioClient minioClient) { this.minioClient = minioClient; } public void uploadFile(String bucketName, String objectName, InputStream inputStream, long size, String contentType) throws Exception { minioClient.uploadObject( UploadObjectArgs.builder() .bucket(bucketName) .object(objectName) .stream(inputStream, size, -1) .contentType(contentType) .build()); } public InputStream downloadFile(String bucketName, String objectName) throws Exception { return minioClient.getObject( GetObjectArgs.builder() .bucket(bucketName) .object(objectName) .build()); } // 其他操作... } ``` 这样就可以在Spring Boot中使用MinIO进行文件的上传和下载了。你可以根据具体的需求,进一步扩展MinIO的功能,例如创建、删除、列举存储桶等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值