当前位置:实例文章 » JAVA Web实例» [文章]SpringBoot 对象存储 MinIO

SpringBoot 对象存储 MinIO

发布人:shili8 发布时间:2024-11-20 00:13 阅读次数:0

**Spring Boot 与 MinIO 的集成**

MinIO 是一个开源的对象存储系统,提供高性能、可扩展性和安全性的数据存储解决方案。Spring Boot 是一个轻量级的 Java 应用框架,易于使用且快速上手。结合 Spring Boot 和 MinIO,可以构建出高效、可靠的云原生应用。

**环境准备**

* **MinIO 环境**
* 下载并安装 MinIO Server * 启动 MinIO Server,并配置端口和访问令牌 * 使用 MinIO Client 或其他工具创建一个 Bucket(存储空间)
* **Spring Boot项目环境**
* 创建一个 Spring Boot项目,使用 Spring Web 和 Spring Cloud Alibaba 的依赖 * 配置 Spring Boot 应用的端口号和其他必要参数**MinIO 与 Spring Boot 的集成**

### **1. 添加 MinIO 相关依赖**

在 `pom.xml` 文件中添加以下依赖:

xml<dependency>
 <groupId>com.github.minio</groupId>
 <artifactId>minio-java</artifactId>
 <version>0.2.3</version>
</dependency>


### **2. 配置 MinIO 的访问信息**

在 `application.properties` 文件中配置 MinIO 的访问信息:

propertiesspring:
 minio:
 endpoint:  # MinIO Server 地址 accessKey: minioadmin # MinIO 访问令牌 secretKey: minioadmin123 # MinIO 私钥


### **3. 创建 MinIO 客户端**

在 Spring Boot 应用中创建一个 MinIO 客户端:

javaimport io.minio.MinioClient;

@Configurationpublic class MinIoConfig {
 @Value("${spring.minio.endpoint}")
 private String endpoint;
 @Value("${spring.minio.accessKey}")
 private String accessKey;
 @Value("${spring.minio.secretKey}")
 private String secretKey;
 @Bean public MinioClient minioClient() {
 return MinioClient.builder()
 .endpoint(endpoint)
 .credentials(accessKey, secretKey)
 .build();
 }
}


### **4. 使用 MinIO 客户端进行存储和读取**

在 Spring Boot 应用中使用 MinIO 客户端进行存储和读取:

java@RestControllerpublic class MinIoController {
 @Autowired private MinioClient minioClient;
 @PostMapping("/upload")
 public String upload(@RequestParam("file") MultipartFile file) throws IOException {
 //上传文件到 MinIO try (InputStream inputStream = file.getInputStream()) {
 PutObjectArgs args = PutObjectArgs.builder()
 .bucket("my-bucket")
 .object(file.getOriginalFilename())
 .contentType(file.getContentType())
 .stream(inputStream, file.getSize(), true)
 .build();
 minioClient.putObject(args);
 }
 return "上传成功";
 }
 @GetMapping("/download")
 public ResponseEntity download() throws IOException {
 // 下载文件 GetObjectArgs args = GetObjectArgs.builder()
 .bucket("my-bucket")
 .object("example.txt")
 .build();
 try (InputStream inputStream = minioClient.getObject(args)) {
 return ResponseEntity.ok().contentType(MediaType.APPLICATION_OCTET_STREAM).body(inputStream.readAllBytes());
 }
 }
}


**总结**

Spring Boot 与 MinIO 的集成可以构建出高效、可靠的云原生应用。通过添加 MinIO 相关依赖,配置 MinIO 的访问信息,创建 MinIO 客户端,并使用 MinIO 客户端进行存储和读取,可以实现对 MinIO 的基本操作。

其他信息

其他资源

Top