查看原文
其他

自己搭建个对象存储服务难不难?

TJ TJ君 2021-11-13

今天小编就在欢快的编码,来了一个刚毕业的小嫩青,虚心求教到 对象存储服务到底有啥用?

说起这个对象存储服务,那家伙,那场面,那可是锣鼓喧天、鞭炮齐鸣

打住,打住,其实小编对于对象存储服务的理解是,为了提供数据、文件、图片、视频这一系列对象类型的的有效储存,通俗的讲,就有点类似平时用的网盘,只不过对于公司来说,往往都是一个专业的拥有巨大空间的存储产品。

尤其是过了千禧年之后,网络的普及让数据呈现爆炸式的增长。

同时,在互联网行业中,非结构化数据的占比开始逐渐增加,所谓的非机构化数据,就是指图像、音频、视频这样的数据,无法用二维表结构进行逻辑表达的数据。

然后各家公司都逐渐开始摸索对于对象存储服务的研究。

时间一转眼来到了2006年,美国Amazon公司发布了AWS S3(Simple Storage Service)服务,将对象存储作为一项云存储服务,引入云计算领域,一下子将对象存储服务推向了全世界,时至今日,AWS S3都是最流行的对象存储服务,事实上,AWS S3几乎可以说是对象存储服务行业的标杆。

随着云技术的发展,越来越多的云厂商开始开展自己的对象存储服务,像阿里云的OSS、华为云的OBS、腾讯云的COS、百度的BOS、网易的NOS,这年头谁要是没个自己的对象存储服务,都不好意思出门打招呼说自己是个互联网巨头~

就在小编还在滔滔不绝的跟小嫩青讲着对象存储服务的前世今生、未来趋势时,她弱弱的问了一句,那有没有什么自己可以搭建的对象存储服务,让我试一试?

敢情套了半天近乎,原来是要小编做苦力啊,不过小编一向是个对于新(女)人(生)乐(无)于(法)助(拒)人(绝)的前辈,于是赶紧拿出这款私藏很久的开源高性能对象存储服务,MinIO,跟小嫩青和大家一起分享下~

MinIO,是一款基于Go语言的,使用Apache License v2.0开源协议,与AWS S3可完美兼容的高性能对象存储服务,既可以自己直接作为对象存储服务使用,也可以和其他一些主流服务组件配合工作。

MinIO,提供不同的部署方式,对于一些初学者和初期的项目,可以直接使用相对简答的单机部署。

除了单机部署,MinIO还提供分布式部署这一概念,分布式部署额外提供了一些单机部署不具备的功能,像是版本控制、对象锁定、纠删代码等。

export MINIO_ROOT_USER=<ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<SECRET_KEY>
minio server http://host{1...n}/export{1...m}

安装服务的方式也有很多种,可以下载源码使用IDEA导入配置后运行,也可以使用Docker安装MinIO镜像。

以Docker为例:

单机部署,先下载相关镜像,然后直接安装,命令如下:

mac和linux版


docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -v /mnt/data:/data \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  quay.io/minio/minio server /data --console-address ":9001"

windows版

docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -v D:\data:/data \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  quay.io/minio/minio server /data --console-address ":9001"

分布式部署,linxu和mac版

docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v /mnt/data:/data \
  quay.io/minio/minio server /data --console-address ":9001"

windows版

docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v D:\data:/data \
  quay.io/minio/minio server /data --console-address ":9001"

一旦安装运行成功后就可访问MinIO Console的管理界面了。

默认的账户密码是,minioadmin:minioadmin

我们可以使用MinIO Console来测试部署情况,也可以用MinIO Console创建存储桶、上传对象和浏览服务器内容。

MinIO还提供了一套UNIX命令的替代品,方便用户操作:

命令作用
alias在配置文件中设置、删除和列出别名
ls列出存储桶和对象
mb做个存储桶
rb移除存储桶
cp复制对象
mirror将对象同步到远程站点
cat显示对象内容
head显示对象的前“n”行
pipe流STDIN到一个对象
share为临时访问对象生成URL
find搜索对象
sql对对象运行sql查询
stat显示对象元数据
mv移动对象
tree以树格式列出存储桶和对象
du递归地总结磁盘使用情况
retention设置对象的保留期
legalhold设置对象的合法保留
diff列出两个存储桶之间对象名称、大小和日期的差异
rm移除对象
encrypt管理bucket加密配置
event管理对象通知
watch侦听对象通知事件
undo撤消放置/删除操作
policy管理对存储桶和对象的匿名访问
tag管理存储桶和对象的标记
ilm管理存储桶生命周期
version管理bucket版本控制
replicate配置服务器端bucket复制
admin管理小型服务器
update将mc更新至最新版本

MinIO还有很多深奥的操作,等着小伙伴们一起发掘,不多说啦,小编要去帮小嫩青装版本去了~要一起研究使用的小伙伴,赶紧一起:

点击下方卡片,关注公众号“TJ君

回复“对象存储”,获取仓库地址


往期推荐

往期推荐

用 Spring Boot 打造一款突破行业垄断的停车场管理系统

基于SpringBoot的文件在线预览神器,可支持99%常用文件的在线预览!

Spring Security太复杂?试试这个轻量、强大、优雅的权限认证框架!

开源Redis可视化客户端工具,用过的人都说好看又好用!

让你的编码之路事半功倍,一款20万Star的编程学习教程,究竟凭什么让大家交口称赞

好货不能错过!一款在GitHub上22k+star的人力资源管理系统


大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员

欢迎关注我,了解多好玩、有趣的科技资讯

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存