Github标星19K+Star
对象存储服务可以用于存储各种文件。 项目的图像存储采用了OSS。 今天,我们将讨论如何自己构建对象存储服务来存储图像。
MinIO简介
MinIO是基于Go语言的高性能对象存储服务,Github上已有19K Star。 它采用Apache License v2.0开源协议,非常适合于存储大量非结构化数据,如图像、视频、日志文件、备份数据、容器/虚拟机镜像等。 本文使用MinIO来构建对象存储服务以存储图像。
安装及部署
MinIO的安装方法有很多,这里使用的是Docker环境下的安装方法。下载MinIO的Docker镜像。 Docker pull MinIO/minio在docker容器中运行minio。 在此,我们将把MiniIO的数据和配置文件夹放在主机上。 docker run-p 9090:9000--名称
- v/my数据/迷你/数据: /数据
- v/my数据/迷你/配置: /超级用户/.迷你
--d minio/minio服务器/data正常工作后,访问该地址登录minio进行使用。 缺省访问密钥和访问密钥为迷你管理员: http://192.168.6.132:9090
上传文件及使用
通过使用MinIO的网站端,完成文件的上载功能。 以下以下载图像为例说明了这一功能。在保存文件之前,必须创建新的存储桶。 。
桶创建后,可以使用上传按钮上传文件。 这里上传图片。 () 9502.163.com) )。
上传图像后,可以通过“复制链接”按钮获取图像的访问路径,但这只是临时访问路径。 。
要获得永久访问路径,必须更改存储桶的访问策略。 可以单击桶右上角的“编辑策略”按钮来修改访问策略。
在这里,您可以选择三种访问策略:只读、只读和只读。 在此选择只读。 但是,必须将访问前缀设置为*.*。 不设定就无法访问。
完成配置后,只需复制链接中的上一组路径即可永久访问文件
访问图像效果展示: ) )。
MinIO客户端的使用
minio网站端的管理变得方便了,但是官方网站提供了基于命令行的客户端mini o客户端(MC )。 我来说明一下那个的使用方法。在
常用命令
中,首先是mc的 命令,这些命令和Linux中的命令有很多相似之处。命令作用ls列出文件和文件夹mb创建一个存储桶或一个文件夹cat显示文件和对象内容pipe将一个STDIN重定向到一个对象或者文件或者STDOUTshare生成用于共享的URLcp拷贝文件和对象mirror给存储桶和文件夹做镜像find基于参数查找文件diff对两个文件夹或者存储桶比较差异rm删除文件和对象events管理对象通知watch监听文件和对象的事件policy管理访问策略session为cp命令管理保存的会话config管理mc配置文件update检查软件更新version输出版本信息
安装及配置
由于MinIO服务端中并没有自带客户端,所以我们需要安装配置完客户端后才能使用,这里以Docker环境下的安装为例。
下载MinIO Client 的Docker镜像:docker pull minio/mc在Docker容器中运行mc:docker run -it --entrypoint=/ymdy/sh minio/mc运行完成后我们需要进行配置,将我们自己的MinIO服务配置到客户端上去,配置的格式如下:mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>对于我们的MinIO服务可以这样配置:mc config host add minio http://192.168.6.132:9090 minioadmin minioadmin -api S3v4常用操作
查看存储桶和查看存储桶中存在的文件:# 查看存储桶 mc ls minio # 查看存储桶中存在的文件 mc ls minio/blog创建一个名为test的存储桶:mc mb minio/test共享avatar.png文件的下载路径:mc share download minio/blog/avatar.png查找blog存储桶中的png文件:mc find minio/blog --name "*.png"参考资料
详细了解MinIO可以参考官方文档:https://docs.min.io/cn/minio-quickstart-guide.html