MinIO分布式文件存储使用

  • 时间:
  • 来源:互联网
  • 文章标签:

MinIO分布式文件存储使用

官网地址:
https://docs.minio.io/cn/
Windows版下载地址:
链接:https://pan.baidu.com/s/1X2dr3r-R7mLElgTMnJCepw
提取码:jwo0

1.服务器运行:

进入到下载文件的目录,输入cmd,运行命令窗口:
在这里插入图片描述
在命令行输入:
minio.exe server 想要存放文件的地址
在这里插入图片描述
运行成功,
在这里插入图片描述
在浏览器中输入上面的网址进行访问:
在这里插入图片描述

登录的账号密码是:
在这里插入图片描述

登录成功
在这里插入图片描述

2.idea端开发

2.1 依赖导入:

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>3.0.10</version>
</dependency>

2.2文件上传

上传一个图片案例,这里需要注意的是桶的名称不能是minio,输入敏感词,会创建失败

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@Override
	public void run(String... args) throws Exception {
		try {
			//使用访问地址和账号密码建立连接
		MinioClient minioClient = new MinioClient("http://172.16.2.14",9000,"minioadmin","minioadmin");
		//判断文件存储的桶对象是否存在
		boolean isExist = minioClient.bucketExists("asiatrip");
		if(isExist) {
			System.out.println("Bucket asiatrip already exists.");
		} else {
			// 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
			minioClient.makeBucket("asiatrip");
		}

		// 使用putObject上传一个文件到存储桶中。
		minioClient.putObject("asiatrip","minio.png", "C:\\Users\\Administrator\\Desktop\\minio.png");
		System.out.println("上传成功");
	} catch(MinioException e) {
		System.out.println("Error occurred: " + e);
		}
	}
}

文件上传后:
在这里插入图片描述

在这里插入图片描述

2.3上传文件到桶的子文件夹下

子文件夹的创建是在文件名前使用,而不是作为桶的后缀
minioClient.putObject("asiatrip","ppp/minio.png", "C:\\Users\\Administrator\\Desktop\\minio.png");

2.4 文件链接获取

getObjectURL()获取桶内文件的url地址,如果设置了只写权限,用户直接访问地址是查看不了的
getObgect()可以获取桶内对应文件的流对象,进行文件流传输
presignedGetObject()返回的是进行加密算法的地址,通过它可以直接访问文件

设置有效期的分享链接(共享文件时间最大7天)
minioClient.getPresignedObjectUrl(Method.GET,"asiatrip","minio.png",10,null)有效期10秒,可以通过get方式访问

3.操作对象

使用的类都是MinioClient对象

3.1 对存储桶操作方法

  • makeBucket 创建桶
  • listBuckets 列出当前所有桶
  • bucketExists 判断桶是否存在
  • removeBucket 移除桶
  • listObjects 获取桶内的内容
  • listIncompleteUploads 获取上传中断的内容,支持断点续传

3.2 对文件操作方法

  • getObject 下载文件
  • putObject 上传文件
  • copyObject 复制文件
  • statObject 查看文件状态
  • removeObject 删除文件
  • removeIncompleteUpload 删除上传中断的文件

3.3 Presigned操作

签名加密操作

  • presignedGetObject 用于获取桶内文件的get下载链接
  • presignedPutObject 用于获取桶内文件的上传链接
  • presignedPostPolicy 用于设置返回和访问链接的编解码算法

3.4 对存储桶策略操作

存储桶的策略主要是设置读写权限,当访问文件地址时会对策略进行判断是否开放相应的功能

  • getBucketPolicy 获取策略信息
  • setBucketPolicy 设置策略信息

本文链接http://www.taodudu.cc/news/show-1781947.html