在进行文件上传的时候,使用到了这项技术,这里简单做一下初步的总结。
和阿里云的oss相似,也是有桶的概念,只不过是安装在本地的。
首先要下载MinIo;
官方链接:
打开下载页面,下载window版的exe,然后在下载好的位置,打开cmd,运行
minio.exe server 存储路径
eg:minio.exe server /data
到浏览器打开localhost:9000.看到Minio的客户端界面,默认账户名密码为miniodamin.然后就可以进行使用:
上传和下载
- package com.itheima.MinioTest;
-
- import io.minio.DownloadObjectArgs;
- import io.minio.MinioClient;
- import io.minio.UploadObjectArgs;
- import io.minio.errors.*;
- import org.junit.Test;
-
- import java.io.IOException;
- import java.security.InvalidKeyException;
- import java.security.NoSuchAlgorithmException;
-
- public class MinioTest {
-
- String PATH = "C:\\Users\\XXX\\Desktop\\";
-
- String backUrl = "http://127.0.0.1:9000/demo/";
-
- @Test
- public void upload() throws Exception {
- MinioClient minioClient = MinioClient.builder()
- .endpoint("http://192.168.0.115:9000")
- .credentials("minioadmin","minioadmin")
- .build();
-
- minioClient.uploadObject(
- UploadObjectArgs.builder()
- .bucket("demo")
- .object("demo.png")
- .filename(PATH + "demo.png")
- .build());
- System.out.println(backUrl + "demo.png");
- // return backUrl + "demo.png";
-
- }
-
- @Test
- public void download() throws Exception {
- MinioClient minioClient = MinioClient.builder()
- .endpoint("http://127.0.0.1:9000")
- .credentials("minioadmin","minioadmin")
- .build();
- minioClient.downloadObject(
- DownloadObjectArgs.builder()
- .bucket("demo")
- .object("demo.png")
- .filename(PATH + "\\demo\\demo.png")
- .build());
-
- }
-
-
- }
endpoint是 ip+端口
credentials是MinIo生成的密钥,也可以用账户名和密码,但这样不安全
bucket是桶名。
object是上传之后文件的名字
filename是文件的整个路径包括文件名
文档中还有很多的API可以使用。上面展示的直接将文件路径传上去作为参数,但是一般的文佳上传都是MultipartFile,可以获得文件流,所以我们可以用输入流进行文件上传,对应的API是putObject;第一个是上传已知大小的文件输入流,第二个是上传未知大小的文件输入流。

如果我们要获取上传之后,文件的访问的路径,也提供了相应的api.

但是,官方给的这个访问路径是有有效期的,所以我们不用他这个,我们可以在界面上进行设置,然后就会出现一个永久的访问路径。
第一步到桶的界面,点击设置:
第二,点击规则
第三部,添加访问策略,写* ,下面保持readonly就可以,点击保存,就可以啦。
这样设置之后,再上传的文件的访问路径就变成了:
IP:端口/桶名/文件在桶内的路径/文件名称
这样就做到了永久访问啦。文档是最好的师傅,但是我明白那种看不懂,又看到文档那么多感觉看不完的烦躁心态。这个时候可以尝试先看一下别的人总结的使用方法。然后一步步摸索,慢慢看。尝试着多使用搜索,这样可以找到你想要的功能哦。好啦,今天的总结就到这里!!!