SpringBoot实战电商项目mall(25k+star)地址:github.com/macrozheng/…html
对象存储服务能够用来存储各种文件,mall
项目中的图片存储采用的是OSS,今天咱们来说下如何本身搭建一个对象存储服务来存储图片。git
MinIO 是一款基于Go语言的高性能对象存储服务,在Github上已有19K+Star。它采用了Apache License v2.0开源协议,很是适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 本文将使用 MinIO 来自建一个对象存储服务用于存储图片。github
MinIO的安装方式有不少,这里咱们使用它在Docker环境下的安装方式。docker
docker pull minio/minio
复制代码
docker run -p 9090:9000 --name minio \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \
-d minio/minio server /data
复制代码
minioadmin
:http://192.168.6.132:9090经过使用MinIO的网页端便可完成文件的上传下载功能,下面咱们以图片上传下载为例来演示下该功能。bash
*.*
,不然会没法访问;虽然MinIO的网页端管理已经很方便了,可是官网仍是给咱们提供了基于命令行的客户端MinIO Client(简称mc),下面咱们来说讲它的使用方法。session
下面咱们先来熟悉下mc的命令,这些命令和Linux中的命令有不少类似之处。ide
命令 | 做用 |
---|---|
ls | 列出文件和文件夹 |
mb | 建立一个存储桶或一个文件夹 |
cat | 显示文件和对象内容 |
pipe | 将一个STDIN重定向到一个对象或者文件或者STDOUT |
share | 生成用于共享的URL |
cp | 拷贝文件和对象 |
mirror | 给存储桶和文件夹作镜像 |
find | 基于参数查找文件 |
diff | 对两个文件夹或者存储桶比较差别 |
rm | 删除文件和对象 |
events | 管理对象通知 |
watch | 监听文件和对象的事件 |
policy | 管理访问策略 |
session | 为cp命令管理保存的会话 |
config | 管理mc配置文件 |
update | 检查软件更新 |
version | 输出版本信息 |
因为MinIO服务端中并无自带客户端,因此咱们须要安装配置完客户端后才能使用,这里以Docker环境下的安装为例。性能
docker pull minio/mc
复制代码
docker run -it --entrypoint=/bin/sh minio/mc
复制代码
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>
复制代码
mc config host add minio http://192.168.6.132:9090 minioadmin minioadmin 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"
复制代码
test
存储桶的访问权限为只读
:# 目前能够设置这四种权限:none, download, upload, public
mc policy set download minio/test/
# 查看存储桶当前权限
mc policy list minio/test/
复制代码
详细了解MinIO能够参考官方文档:docs.min.io/cn/minio-qu…学习
mall项目全套学习教程连载中,关注公众号第一时间获取。ui