springboot 整合高版本8.5.2 Minio
MinIO是一个开源的对象存储服务器,与Amazon S3兼容。下面是MinIO的一些重要能力:
- MinIO是一个开源的对象存储服务器,与Amazon S3兼容。下面是MinIO的一些重要能力
- 对象存储:MinIO支持对象存储,可以用来存储图片、视频、文档等任意数据类型。
- 分布式存储:MinIO支持分布式存储,可以横向扩展来提高性能和容量。
- 高可用性:MinIO采用了分布式存储和冗余备份来保证高可用性。
- 安全性:MinIO支持TLS/SSL加密,数据在传输和存储过程中都受到保护。
- 生命周期管理:MinIO支持基于时间和对象版本的生命周期管理,可以自动删除或迁移不再需要的对象。
- 访问控制:MinIO支持灵活的访问控制策略,可以基于用户、组、IP地址、请求类型等条件进行授权管理。
- 版本管理:MinIO支持版本管理,可以对同一对象的不同版本进行管理和查询。
- 前缀搜索:MinIO支持前缀搜索,可以快速查找符合条件的对象。
- 事件通知:MinIO支持事件通知机制,可以将对象的创建、修改、删除等事件通知到外部系统。
- 与S3兼容性:MinIO兼容S3 API,可以与S3客户端、SDK、工具无缝对接。
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.2</version>
</dependency>
@Configuration
public class MinioConfig {
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint("http://minio.example.com")
.credentials("HVETHsd1EfWFSA7m", "pmo0HUIzfNJyCHULcmxEgIC1ls3YuJcu")
.build();
}
}
@RestController
public class FileUploadController {
@Autowired
private MinioClient minioClient;
@Value("${minio.bucketName:wiki}")
private String bucketName;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws Exception {
// 检查桶是否存在,如果不存在则创建
if (!minioClient.bucketExists( BucketExistsArgs.builder().bucket(bucketName).build())) {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
// 上传文件到MinIO服务器
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object(file.getOriginalFilename())
.stream(file.getInputStream(), file.getSize(), -1)
.contentType(file.getContentType())
.build());
return "File uploaded successfully!";
}
}


在实际应用中,你可以将上传的图片链接作为图片的URL,在网页上进行展示。例如:
<img src="http://minio.example.com/mybucket/myimage.jpg">