当前位置: 首页 > news >正文

MinIO服务部署指南

目录

MinIO的下载与安装

Spring boot集成MinIO

一:添加MinIO的依赖

二:配置MinIO

三:创建配置类

 四:使用MinIO


‌MinIO是一个基于‌Apache License v2.0开源协议的对象存储服务‌,它兼容‌亚马逊S3云存储服务接口,非常适合存储大容量非结构化的数据,如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,文件大小可以从几KB到最大5TB不等

MinIO 官网地址:https://min.io/docs/minio/kubernetes/upstream/

MinIO Github地址:

GitHub - minio/minio: MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license. - minio/minioicon-default.png?t=O83Ahttps://github.com/minio/minio

MinIO的下载与安装

MinIO的下载地址:https://dl.min.io/server/minio/release/windows-amd64/minio.exe

建议下载到一个没有中文名字的文件夹下,因此我下载到D盘下的文件夹中,如下图:

文件下载好后,使用cmd命令进行到开即可

 在cmd窗口使用以下命令,即可打开MinIO

minio.exe server d:\MySoft\MinIO\data

当出现以下画面就表示已经登陆好了

在cmd窗口界面可以看到以下信息:

 因此,我们选择2的WebUI的地址,密码和用户名都是默认的minioadmin,当出现以下画面就表示登陆成功

以上是Windows版本的下载与安装方式,Linux版本大致类似,我将官方的文档放在下面,大家可以自行查看:https://min.io/docs/minio/linux/index.html 

Spring boot集成MinIO

一:添加MinIO的依赖

<dependencies><!-- Spring Boot Starter for MinIO --><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.3</version></dependency><!-- Spring Boot Starter for Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

二:配置MinIO

在spring项目下的resource文件下application.yml配置MinIO

minio:endpoint: http://127.0.0.1:9000accessKey: YOUR_ACCESS_KEYsecretKey: YOUR_SECRET_KEYbucket: your-bucket-name

关于配置文件中的accessKey,secretKey,bucket这三个参数,要在WebUI界面进行配置,如下:

1.在主页界面找到Buckets

2.点击Create Buckets创建即可看到三个配置信息,粘贴复制到响相应的配置文件即可

 

三:创建配置类

 在项目的config包下创建MinIO的配置类

@Configuration
public class MinioConfig {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.accessKey}")private String accessKey;@Value("${minio.secretKey}")private String secretKey;@Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}
}

 四:使用MinIO

在创建好配置类之后,便可以使用MinIO了,例如在Service以下使用

Service
public class MinioService {private final MinioClient minioClient;private final String bucketName;@Autowiredpublic MinioService(MinioClient minioClient,@Value("${minio.bucketName}") String bucketName) {this.minioClient = minioClient;this.bucketName = bucketName;}// 上传public String uploadFile(String objectName, InputStream stream, String contentType) throws Exception {boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!isExist) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}// 保存图片minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(objectName).stream(stream, -1, 10485760).contentType(contentType).build());// 返回 URL 地址return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucketName).object(fileName).method(Method.GET).build());}// 下载public InputStream downloadFile(String objectName) throws Exception {return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(objectName).build());}
}

其中的 uploadFile 为文件的上传方法 ,downloadFile 为文件的下载方法。

在controller层可以去调用方法,如下:

@RestController
@RequestMapping("/minio")
public class MinioController {@Autowiredprivate MinioService minioService;@PostMapping("/upload")public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {try {InputStream inputStream = file.getInputStream();minioService.uploadFile(file.getOriginalFilename(), inputStream, file.getContentType());return ResponseEntity.ok("File uploaded successfully.");} catch (Exception e) {e.printStackTrace();return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to upload file.");}}@GetMapping("/download/{filename}")public ResponseEntity<Resource> downloadFile(@PathVariable String filename) throws IOException {try {InputStream stream = minioService.downloadFile(filename);return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + filename + "\"").body(new InputStreamResource(stream));} catch (Exception e) {e.printStackTrace();return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();}}
}

以上就是MinIO的服务部署指南。 


http://www.mrgr.cn/news/60814.html

相关文章:

  • shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
  • 对通用骨架提取方法的改进
  • 编译,链接,加载
  • RWA“两链一桥”平台在香港金融科技周亮相
  • 河北统计年鉴(2000-2021年)
  • SSM-Springboot笔记(2)- SpringBoot常用开发技能
  • < 背包问题 >
  • 多源BFS问题(1)_01矩阵
  • Tangible Software Solutions 出品最准确可靠的源代码转换器
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 2)
  • DispatchingController
  • Java Lock ConditionObject 总结
  • 优先算法——复写零(双指针)
  • BFS解决最短路问题(4)_为高尔夫比赛砍树
  • 北理工软件工程考研难度分析
  • 解决VMware虚拟机的字体过小问题
  • get_cli让你使用GetX效率翻倍的神器
  • 服务攻防之开发组件安全
  • STL---vector容器
  • WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装
  • 实现YOLO V3数据加载器:从文件系统读取图像与标签
  • 当忠诚成为毒药:飞猴与NPD人格的暗黑共生之谜
  • 产品结构设计(五):结构设计原则
  • MPC模型预测控制与RL强化学习的差异性
  • LeetCode算法(双指针)
  • 智慧工地:建筑热潮退去后的挑战与应对策略