springboot中怎么使用minio存储容器
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要为大家展示了"springboot中怎么使用minio存储容器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"springboot中怎么使用mi
千家信息网最后更新 2025年01月19日springboot中怎么使用minio存储容器
这篇文章主要为大家展示了"springboot中怎么使用minio存储容器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"springboot中怎么使用minio存储容器"这篇文章吧。
docker运行
docker run -p 9000:9000 -p 9001:9001 -v /mydata/minio/data:/data minio/minio server /data --console-address ":9001
java导包
最好是这个版本,其他版本尝试过都出bug了
io.minio minio 8.2.1
配置文件
spring: # 上传文件大小设置 servlet: multipart: enabled: true max-file-size: 50MBminio: endpoint: xxx:9000 accesskey: xxx secretkey: xxx bucketName: xxx
操作
1、编写一个属性文件
@Data@Component@ConfigurationProperties(prefix = "minio") // 从配置文件的前缀拿public class MinioProperties { private String endpoint; private String accessKey; private String secretKey;}
2、编写一个minioClient
@Configurationpublic class MinioConfig { @Resource private MinioProperties minioProperties; @Bean public MinioClient minioClient() { System.out.println(minioProperties.getAccessKey()); System.out.println(minioProperties.getSecretKey()); MinioClient minioClient = MinioClient.builder() .endpoint(minioProperties.getEndpoint()) .credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey()) .build(); return minioClient; }}
3、上传文件Api
public class MinioServiceImpl implements MinioService { @Value("${minio.bucketName}") private String bucketName; @Value("${minio.endpoint}") private String endPoint; @Resource private MinioClient minioClient; @Override public ListuploadFile(MultipartFile[] file) throws ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { if (file == null || file.length == 0) { throw new APIException(ResultCode.PARAM_IS_BLANK); } List fileUrlList = new ArrayList<>(file.length); String url = ""; for (MultipartFile multipartFile : file) { // 1.获取文件名 String originalFilename = multipartFile.getOriginalFilename(); // 2.截取后缀名 String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")); // 3.生成唯一名 String newFileName = UUID.randomUUID().toString() + imgSuffix; // 4.日期目录 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); String dataPath = dateFormat.format(new Date()); // 5.合成路径 String finalFileName = dataPath + "/" + newFileName; // 别忘了bucketName url = endPoint + "/" + bucketName + "/" + finalFileName; try { // 文件上传 InputStream in = multipartFile.getInputStream(); minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(finalFileName).stream( in, multipartFile.getSize(), -1) .contentType(multipartFile.getContentType()) .build()); in.close(); fileUrlList.add(url); } catch (IOException e) { throw new APIException(ResultCode.COMMON_FAIL); } } return fileUrlList; }}
本地浏览设置
通过上面这串url就可以直接访问图片了
以上是"springboot中怎么使用minio存储容器"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
容器
存储
内容
篇文章
版本
学习
帮助
配置
前缀
后缀
图片
大小
属性
文件名
日期
易懂
更多
最好
条理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上市网络安全服务
淄川酒店hr软件开发
淮南联大计算机网络技术
数据库二级联动数据库设计
怎么查看数据库数据被拷贝过
城关网络安全责任
高新区辰光网络技术服务部
江西直销软件开发
服务器ip被占用
搭建管理云服务器
网络服务器的安全配置
公共信息网络安全监察管理
铁路如何做好网络安全
软件开发类笔试题目
悦训网络技术有限公司
sql数据库应用与开发答案
网络安全的名言有哪些
测试工程师怎么测试数据库
海南斯克比互联网科技有限公司
欧洲保障网络安全
网络安全护网排名
网络药理学常用数据库及网站汇总
安卓数据库的事务性
网络技术的知识
网络安全专业二本分数线
用友无法数据库实例
无纸传真服务器显示不完整
软件开发计价依据
快捷方式图标软件开发
华夏人生私人服务器怎么开