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后台管理即可管理存入的文件
本文作者:初夏†失忆
本文链接:https://www.cnblogs.com/Esummer/p/13795622.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步