Spring Boot 与 MinIO 对象存储集成实战引言大家好今天想和大家聊聊 Spring Boot 与 MinIO 对象存储的集成实践。作为一名 Java 架构师我在多个项目中使用 MinIO 作为对象存储解决方案。MinIO 的高性能和 S3 兼容性让它成为私有云存储的理想选择。让我们一起深入探索。1. MinIO 基础配置1.1 依赖配置dependencies dependency groupIdio.minio/groupId artifactIdminio/artifactId version8.5.7/version /dependency /dependencies1.2 客户端配置Configuration public class MinioConfig { Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(http://localhost:9000) .credentials(minioadmin, minioadmin) .build(); } }2. 文件上传下载Service public class MinioService { Autowired private MinioClient minioClient; public void uploadFile(String bucket, String objectName, InputStream stream, long size) throws Exception { minioClient.putObject( PutObjectArgs.builder() .bucket(bucket) .object(objectName) .stream(stream, size, -1) .build() ); } public InputStream downloadFile(String bucket, String objectName) throws Exception { return minioClient.getObject( GetObjectArgs.builder() .bucket(bucket) .object(objectName) .build() ); } }3. 预签名 URLpublic String getPresignedUrl(String bucket, String objectName, int expiryHours) throws Exception { return minioClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Method.GET) .bucket(bucket) .object(objectName) .expiry(expiryHours, TimeUnit.HOURS) .build() ); }总结MinIO 为我们提供了高性能的对象存储能力通过与 Spring Boot 集成我们可以轻松实现文件的上传下载和管理。在实际项目中我们应该合理设计存储桶结构注意安全性配置这其实可以更优雅一点。如果有任何问题或建议欢迎在评论区留言我会认真回复每一条评论。希望这篇文章对大家有所帮助。如果觉得有用别忘了点赞、收藏和分享哦
Spring Boot 与 MinIO 对象存储集成实战
Spring Boot 与 MinIO 对象存储集成实战引言大家好今天想和大家聊聊 Spring Boot 与 MinIO 对象存储的集成实践。作为一名 Java 架构师我在多个项目中使用 MinIO 作为对象存储解决方案。MinIO 的高性能和 S3 兼容性让它成为私有云存储的理想选择。让我们一起深入探索。1. MinIO 基础配置1.1 依赖配置dependencies dependency groupIdio.minio/groupId artifactIdminio/artifactId version8.5.7/version /dependency /dependencies1.2 客户端配置Configuration public class MinioConfig { Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(http://localhost:9000) .credentials(minioadmin, minioadmin) .build(); } }2. 文件上传下载Service public class MinioService { Autowired private MinioClient minioClient; public void uploadFile(String bucket, String objectName, InputStream stream, long size) throws Exception { minioClient.putObject( PutObjectArgs.builder() .bucket(bucket) .object(objectName) .stream(stream, size, -1) .build() ); } public InputStream downloadFile(String bucket, String objectName) throws Exception { return minioClient.getObject( GetObjectArgs.builder() .bucket(bucket) .object(objectName) .build() ); } }3. 预签名 URLpublic String getPresignedUrl(String bucket, String objectName, int expiryHours) throws Exception { return minioClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Method.GET) .bucket(bucket) .object(objectName) .expiry(expiryHours, TimeUnit.HOURS) .build() ); }总结MinIO 为我们提供了高性能的对象存储能力通过与 Spring Boot 集成我们可以轻松实现文件的上传下载和管理。在实际项目中我们应该合理设计存储桶结构注意安全性配置这其实可以更优雅一点。如果有任何问题或建议欢迎在评论区留言我会认真回复每一条评论。希望这篇文章对大家有所帮助。如果觉得有用别忘了点赞、收藏和分享哦