如何使用对象存储服务Minio
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"如何使用对象存储服务Minio",在日常操作中,相信很多人在如何使用对象存储服务Minio问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用对象存
千家信息网最后更新 2025年02月01日如何使用对象存储服务Minio
这篇文章主要介绍"如何使用对象存储服务Minio",在日常操作中,相信很多人在如何使用对象存储服务Minio问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用对象存储服务Minio"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
推荐理由
开源免费(是我们考虑的首要元素),高性能
长的好看:有漂亮的界面。
为云环境而生:与k8s、etcd、docker等深度集成。
文档详细:提供了Java、JavaScript、Python、Golang、.Net等各种语言的sdk,集成变得更加容易
部署简单
docker部署
将MiniIO的数据和配置文件夹挂在到宿主机上
docker run -p 9090:9000 --name minio \ -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123123123 \ -v /mydata/minio/data:/data \ -v /mydata/minio/config:/root/.minio \ -d minio/minio server /data;# 如果不创建用户名密码,默认用户名密码: minioadmin:minioadmin
访问
springboot 使用minio
1 引入maven
io.minio minio 7.0.2
2 配置 application.properties
minio.url= http://192.168.3.189:9090 minio.accessKey= adminminio.secretKey= 123123123 minio.secure=false minio.bucketName=testminio.configDir=/home/data/
3 注入属性
@Component @ConfigurationProperties(prefix = "minio") public class MinioConfig { // "endPoint是一个URL,域名,IPv4或者IPv6地址" private String url; //("accessKey类似于用户ID,用于唯一标识你的账户") private String accessKey; //("secretKey是你账户的密码") private String secretKey; //("如果是true,则用的是https而不是http,默认值是true") private Boolean secure; //("默认存储桶") private String bucketName; //("配置目录") private String configDir; @Bean public MinioClient getMinioClient() throws InvalidEndpointException, InvalidPortException { MinioClient minioClient = new MinioClient(url, accessKey, secretKey,secure); return minioClient; } public String getBucketName() { return bucketName; } public String getConfigDir() { return configDir; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getAccessKey() { return accessKey; } public void setAccessKey(String accessKey) { this.accessKey = accessKey; } public String getSecretKey() { return secretKey; } public void setSecretKey(String secretKey) { this.secretKey = secretKey; } public Boolean getSecure() { return secure; } public void setSecure(Boolean secure) { this.secure = secure; } public void setBucketName(String bucketName) { this.bucketName = bucketName; } public void setConfigDir(String configDir) { this.configDir = configDir; }}
4 创建工具类
@Component public class MinioUtil { @Autowired private MinioClient minioClient; /** * 上传文件 */ public void uploadFile(InputStream inputStream, String objectName) { String buckName = "test"; try { if(!minioClient.bucketExists(buckName)) { minioClient.makeBucket(buckName); } minioClient.putObject(buckName, objectName, inputStream, inputStream.available(), "image/jpeg"); } catch (Exception e) { e.printStackTrace(); } } public void downloadFile(String bucketName, String fileName, String originalName, HttpServletResponse response) { try { InputStream file = minioClient.getObject(bucketName, fileName); String filename = new String(fileName.getBytes("ISO8859-1"), StandardCharsets.UTF_8); response.setHeader("Content-Disposition", "attachment;filename=" + filename); ServletOutputStream servletOutputStream = response.getOutputStream(); int len; byte[] buffer = new byte[1024]; while ((len = file.read(buffer)) > 0) { servletOutputStream.write(buffer, 0, len); } servletOutputStream.flush(); file.close(); servletOutputStream.close(); } catch (ErrorResponseException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}
5 测试
@RestController public class GreetingsController { @Autowired MinioUtil minioUtil; @RequestMapping(value = "/{name}", method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public String greetingText(@PathVariable String name,HttpServletResponse response) throws FileNotFoundException { minioUtil.uploadFile(new FileInputStream(new File("C:\\Users\\ctyc\\Desktop\\1.jpg")), "test1.jpg"); minioUtil.downloadFile("test", "test1.jpg", "t1.jpg", response); return "Hello " + name + "!"; }}
到此,关于"如何使用对象存储服务Minio"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
存储
对象
服务
学习
密码
用户
配置
文件
更多
用户名
账户
帮助
好看
实用
漂亮
接下来
元素
地址
域名
宿主
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
陕西师范大学网络安全
我的世界服务器招聘建筑师
保山软件开发企业
软件开发的研究生工资标准
3种维护网络安全的方式
未来之役改不了服务器怎么回事
rust进哪个服务器不卡
数据库创建外键报错1025
成都郫都国家网络安全宣传周活动
2b2t的服务器端口
济南品君互联网科技
股票市场数据数据库
数据库取消唯一
黑龙江运营网络技术服务代理商
广州暴雨网络技术有限
浪潮服务器在国内市场
辽宁网络服务器机箱加工
软件开发区北京还是上海
数据库系统概论必背代码题
电力网络安全监测装置的重要性
tx数据库下载
我的世界服务器招聘建筑师
软件开发app搭建
网络安全 产品安全
跟杰哥学网络安全
空数据库access
蔚来科技互联网产品
武汉软件开发专业排名
网络安全定责方法
完美获取社区服务器失败