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有没有关闭,或者设定特定的端口通过。
目录1 环境搭建2 使用方法2.1 docker版2.2 可执行程序版2.3 同时挂载多个盘/文件夹的方式2.4 MC的使用3 服务端的类型4 分布式部署的方式1 环境搭建简介:minio是一种专注于对象存储的软件,可以兼容亚马逊的s3接口,同时内置了webserver,运行主程序之后可以直接的使用网页进行连接。从官网下载可执行程序或者是直接使用docker版。官网连接:https://docs.min.io/docs/minio-quickstart-...
赠送jar包:
minio
-8.0.3.jar;
赠送原API文档:
minio
-8.0.3-javadoc.jar;
赠送源代码:
minio
-8.0.3-sources.jar;
赠送Maven依赖信息文件:
minio
-8.0.3.pom;
包含翻译后的API文档:
minio
-8.0.3-javadoc-API文档-中文(简体)版.zip;
Maven坐标:io.
minio
:
minio
:8.0.3;
标签:
minio
、中文文档、jar包、java;
使用
方法
:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
使用
。
赠送jar包:
minio
-8.2.2.jar;
赠送原API文档:
minio
-8.2.2-javadoc.jar;
赠送源代码:
minio
-8.2.2-sources.jar;
赠送Maven依赖信息文件:
minio
-8.2.2.pom;
包含翻译后的API文档:
minio
-8.2.2-javadoc-API文档-中文(简体)版.zip;
Maven坐标:io.
minio
:
minio
:8.2.2;
标签:
minio
、中文文档、jar包、java;
使用
方法
:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
使用
。
对于项目的文件存储可以
使用
像阿里云、腾讯云这种平台的服务,当然也可以自己搭建一个文件管理系统。这里简单介绍一下
MinIo
官网地址: http://www.
minio
.org.cn/
先根据官网地址进行下载
MinIo
的server端和client端,这里需要注意一点的是,在官网给的下载地址:http://dl.
minio
.org.cn/server/
minio
/release/windows-amd64/
minio
.exe
https://dl.
minio
.org.cn/client/mc/release/
赠送jar包:
minio
-8.0.3.jar;
赠送原API文档:
minio
-8.0.3-javadoc.jar;
赠送源代码:
minio
-8.0.3-sources.jar;
赠送Maven依赖信息文件:
minio
-8.0.3.pom;
包含翻译后的API文档:
minio
-8.0.3-javadoc-API文档-中文(简体)-英语-对照版.zip;
Maven坐标:io.
minio
:
minio
:8.0.3;
标签:
minio
、中英对照文档、jar包、java;
使用
方法
:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
使用
。
双语对照,边学技术、边学英语。
二. Supervisor
使用
Supervisor配置文件:/etc/supervisor/conf
注:Supervisor的配置文件默认是不全的,不过大部分默认的情况下,基本功能已满足
使用
子进程配置文件路径:/etc/supervisor.d/
注:默认子进程配置文件为ini格式,可在su
其中,`url` 配置项为
MinIO
服务器的访问地址,`access-key` 和 `secret-key` 配置项为
MinIO
服务器的访问凭证,`bucket-name` 配置项为要操作的存储桶名称。
3. 编写文件下载接口
```java
@RestController
public class
Minio
Controller {
@Autowired
private
Minio
Client
minio
Client;
@Value("${
minio
.bucket-name}")
private String bucketName;
@GetMapping("/download")
public void downloadFile(@RequestParam String objectName, HttpServletResponse response) {
try {
InputStream inputStream =
minio
Client.getObject(bucketName, objectName);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + objectName);
IOUtils.copy(inputStream, response.getOutputStream());
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
其中,`
minio
Client` 为
MinIO
客户端实例,`bucketName` 为要操作的存储桶名称,`downloadFile`
方法
为文件下载接口。该接口接收一个文件名参数 `objectName`,通过 `
minio
Client.getObject`
方法
获取文件输入流,将输入流写入到响应流中,实现文件下载。
以上就是
使用
Spring Boot 集成
MinIO
进行文件下载的步骤,希望能够对你有所帮助。
qq_40620444: