minio在实际工作项目中的应用

您所在的位置:网站首页 对象存储应用 minio在实际工作项目中的应用

minio在实际工作项目中的应用

2024-07-10 18:19| 来源: 网络整理| 查看: 265

1.应用系统架构

在这里插入图片描述

整个架构中,模块之间使用http协议通信,并且每个模块的作用如下: 1)Web/API服务器的作用是提供UMS系统的认证和鉴权,即验证Web客户端或者开发者API请求接口的合法性; 2)文件管理服务器的作用是提供对外操作minIO服务器的接口,根据目前UMS系统的业务需求,只提供了获取上传文件presignedURL,设置过期时间, 设置对外访问 策略,创建存储桶,生成下载文件URL的功能;那么什么是presignedURL呢?它是对象所有者使用自己的安全凭证来创建预签名的 URL,以授予有限时间内的上传或下 载对象权限,从而与其他用户共享对象,注:即使是私有对象使用presignedURL也可以共享给他人,并且presignedURL最大有效期为7天。 其中文件管理服务器获取上传文件presignedURL的方法直接使用了minIO官方API,当然你也可以自己实现presignedURL方法,此外,由于下载presignedURL最大保留时间为7天,不符合UMS系统业务需求,所以,文件管理服务器自己实现了一个生成下载URL的方法,此链接的过期时间可任意设置,但前提要把存储桶的对外访问策略设置为public。由此,客户端就可以直接使用上传presignedURL上文件到minIO服务器,使用下载链接直接下载文件即可。 3)minIO集群作用是存储实体文件,该集群采用去中心化无共享架构,各节点间为对等关系,连接至任一节点均可实现对集群的访问,minIO集群前端增加了Nginx实现反向代理;minIO节点之间的通信使用的都是rpc。此外,管理minIO服务器除了上面提到的SDK以外,官方还提供了命令行和web页面的形式,内容分别如下:

1.# minIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4) 2.$ wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc 3.$ chmod +x mc 4.$ ./mc -h 5.ls 列出文件和文件夹。 6.mb 创建一个存储桶或一个文件夹。 7.cat 显示文件和对象内容。 8.pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。 9.share 生成用于共享的URL。 10.cp 拷贝文件和对象。 11.mirror 给存储桶和文件夹做镜像。 12.find 基于参数查找文件。 13.diff 对两个文件夹或者存储桶比较差异。 14.rm 删除文件和对象。 15.events 管理对象通知。 16.watch 监视文件和对象的事件。 17.policy 管理访问策略。 18.config 管理mc配置文件。 19.update 检查软件更新。 20.version 输出版本信息

把Nginx代理ip和端口号或者minIO集群中任意节点的ip和端口号输入浏览器,输入minIO的账户名和密码即可登录,界面如下: 在这里插入图片描述

2.具体交互逻辑

在这里插入图片描述 首先,客户端要请求业务服务器(WebServer/APIServer)获取上传文件的凭证(presignedURL),然后,业务服务器响应一个上传文件URL和下载文件的URL,客户端使用上传URL上传文件到文件服务器,使用下载URL作为请求后端的文件参数,如发送邮件消息支持上传本地图片,上传到后端的图片即可使用文件下载URL作为参数。

该方案的优点如下: 客户端直接上传文件到minIO服务器,不经过业务服务器,减轻业务服务器的压力,提高可用性数据库服务器只存储文件的下载URL,减少数据库的存储量支持上传超大文件,比如3G以上等,硬件性能足够的情况下,minIO服务器单个文件最大可达5T上传文件的数量没有限制可以解决同名文件覆盖问题可以适配任何兼容S3协议的文件服务器,满足不同客户的要求 以上内容来自于文章:

极光笔记丨搭建UMS私有云文件服务器



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3