当前位置: 首页 > 后端技术 > Java

Githubstars28K+!这个可视化的对象存储服务真是太好吃了!

时间:2023-04-01 18:35:43 Java

我们平时做项目的时候,文件存储是一个很常见的需求。这个时候我们就要用到对象存储服务了。通常,我们可能会选择OSS、AWSS3等第三方服务。今天就带大家搭建属于自己的对象存储服务,可视化管理,非常好用!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mallMinIO介绍MinIO是一个基于Go语言的高性能对象存储服务,在Github上有28K+Star。采用ApacheLicensev2.0开源协议,非常适合存储大容量非结构化数据,如图片、视频、日志文件、备份数据、容器/虚拟机镜像等。安装使用Docker安装MinIO服务非常简单,几条命令就可以搞定!首先下载MinIO的Docker镜像;dockerpullminio/minio下载完成后,使用如下命令运行MinIO服务,注意使用--console-address指定MinIOConsole的运行端口(否则会运行在随机端口):dockerrun-p9090:9000-p9001:9001--nameminio\-v/mydata/minio/data:/data\-eMINIO_ROOT_USER=minioadmin\-eMINIO_ROOT_PASSWORD=minioadmin\-dminio/minioserver/data--console-address":9001"运行成功后,可以访问MinIOConsole的管理界面。输入账号密码minioadmin:minioadmin登录。访问地址:http://192.168.7.142:9090MinIOConsole使用MinIOConsole是MinIO自带的可视化管理工具。与上一代可视化工具相比,功能相当强大。让我们体验一下这个工具。先来看上一代的MinIOBrowser,基本只支持存储桶和文件的管理功能;再看看MinIOConsole,它不仅支持存储桶和文件的管理,还增加了用户、权限、日志等管理功能。有许多;在存储文件之前,我们首先要创建一个存储桶;创建成功后,上传一个文件;上传成功后,如果要从外部访问文件,需要设置访问策略为public,这里的策略只有public和private两种,不太灵活;之后把地址改成外网访问地址就可以访问图片了。默认情况下只能下载,不能直接查看(稍后我们会解决这个问题)。外网访问地址:http://192.168.7.142:9090/blo...客户端使用其实对于对象存储来说,MinIOConsole的功能还不够,所以官方也提供了客户端MinIOClient(简称mc)基于命令行,让我们去告诉我如何使用它。常用命令先来熟悉一下mc命令。这些命令与Linux中的命令有很多相似之处。ls列出文件和文件夹mb创建存储桶或文件夹rb删除存储桶或文件夹cat显示文件和对象内容pipe将STDIN重定向到对象或文件或为共享生成的STDOUT共享URLcp复制文件和对象mirror镜像存储桶和foldersfind根据参数查找文件diff比较两个文件夹或桶之间的差异rm删除文件和对象events管理对象notificationwatch监控文件和对象的事件policy管理访问Policysession是保存的会话配置,用于cp命令管理管理mc配置文件更新检查软件更新版本输出版本信息安装配置由于MinIO服务器没有自带客户端,所以我们在使用前需要先安装配置客户端。这里以在Docker环境下安装为例。下载MinIOClient的Docker镜像;dockerpullminio/mc在Docker容器中运行mc;dockerrun-it--entrypoint=/bin/shminio/mc运行后,我们需要配置配置自己的MinIO服务到客户端,配置格式如下;mcconfighostadd这可以为我们的MinIO服务配置。mcconfighostaddminiohttp://192.168.7.142:9090minioadminminioadmin常用操作查看存储桶,查看存储桶中存在的文件;#查看存储桶mclsminio#查看存储桶文件mclsminio/blog创建一个名为test的bucket;mcmbminio/test分享avatar.png文件的下载路径;mcsharedownloadminio/blog/avatar.png在博客桶中找到png文件;mcfindminio/blog--name"*.png"设置测试桶的访问权限为只读。#目前可以设置这四个权限:none,download,upload,publicmcpolicysetdownloadminio/test/#查看bucket当前权限mcpolicylistminio/test/CompatiblewithAWSS3当我们连接到third-派对服务,我们需要使用对象存储有时,这些服务通常支持AWSS3。例如,直播播放功能需要对象存储来存储播放视频。由于MinIO兼容AWSS3的大部分API,我们可以直接将其当做AWSS3来使用。我们可以下载一个AWSS3客户端试试,MinIO是否支持S3API,这里是S3Browser,下载地址:https://s3browser.com/安装S3Browser后,添加一个Account,输入相关登录信息,注意选择帐户类型为S3兼容存储;连接成功后,我们可以看到我们之前创建的存储桶和上传的文件;S3Browser这个工具还是很强大的。与之相比,MinIOConsole实在是太强大了。虚弱的;出现了上面提到的问题,无法直接查看图片文件,其实是因为在访问图片文件时,MinIO返回的Content-Type是application/octet-stream;接下来,我们可以使用S3Browser修改默认返回的响应头;然后将.png开头的文件的响应头改为image/png;需要注意的是,之前上传的文件需要重新上传才能生效。这时,您可以直接访问链接查看图片;如果要修改存储桶的访问权限,可以直接通过Permissions选项卡进行修改,比MinIOConsole更加灵活。总结如果你想搭建自己的对象存储服务,MinIO确实是首选。它与AWSS3的API兼容。使用MinIO等同于使用AWSS3,兼容一些主流的第三方服务。不过自带的客户端MinIOConsole确实有点鸡肋。幸运的是,它支持AWSS3,你可以使用一些强大的S3客户端工具。参考官方文档:https://docs.min.io/本文已收录GitHubhttps://github.com/macrozheng/mall-learning,欢迎大家Star!