MinIO入门学习(三)
Springboot 整合 MinIO
项目通过maven构建首先添加MinIO的maven依赖
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency>
在resources目录下创建minio.properties配置文件,内容如下:
minio.endpoint=http://localhost:9000 minio.accessKey=minioadmin minio.secretKey=minioadmin minio.bucketName=demo
在spring boot项目下创建MinioConfig配置类
使用ConfigurationProperties注解加载指定prefix的值 ,使用@PropertiesSource注解指定的配置文件,将minio.properties中的配置项加载进来
并创建MinioClient交给spring容器管理
@Data @Component @ConfigurationProperties(prefix = "minio") @PropertySource(value = "classpath:minio.properties") public class MinioConfig { private String endpoint;
private String accessKey; private String secretKey; private String bucketName; @SneakyThrows @Bean public MinioClient getMinioClient() { MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey); return minioClient; } }
创建MinioController,编写一个上传文件的方法
@RequestMapping("/minio")
@RestController
public class MinioController {
@Autowired
private MinioClient minioClient;
@Autowired
private MinioConfig minioConfig;
@PostMapping("upload")
public String uploadFile(MultipartFile file) throws IOException {
try {
String fileName = file.getOriginalFilename();
String objectName = new SimpleDateFormat("yyyy/MM/dd/").format(new Date()) + UUID.randomUUID().toString().replaceAll("-", "")
+ fileName.substring(fileName.lastIndexOf("."));
InputStream inputStream = file.getInputStream();
minioClient.putObject(minioConfig.getBucketName(), objectName, inputStream,null);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
}
return "上传成功";
}
}
此处的
minioClient.putObject(minioConfig.getBucketName(), objectName, inputStream, null);
为方便理解直接写于controller层,后期应写于sevice层
再通过整合swagger或通过postman对controller中定义的接口进行测试。
个人通过整合swagger进行测试

目录结构如下:

浏览器输入localhost:9000访问MinIO后台管理即可管理存入的文件


浙公网安备 33010602011771号