前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用minio搭建私有化对象存储服务

使用minio搭建私有化对象存储服务

原创
作者头像
咪啪咪啪
修改2020-06-19 11:48:44
5.8K0
修改2020-06-19 11:48:44
举报
文章被收录于专栏:PHP-咪啪咪啪

在工作中我们或多或少都会接触到对象存储,但是这些对象存储大部分都是云服务,对外的项目还可以使用,但是遇到一些需要私有化部署的,我们还想继续使用对象存储怎么办呢?

这里介绍一个开源的项目MinIO,使用了这个我们就可以很方便的来搭建属于我们自己的云服务了。

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

安装(Linux平台)
代码语言:txt
复制
# 下载 [https://dl.min.io/server/minio/release/linux-amd64/minio]

wget https://dl.min.io/server/minio/release/linux-amd64/minio

# 为了便于管理,我们把文件移动到/usr/local下

mv minio /usr/local/minio

# 修改权限

cd /usr/local/minio/

chmod 755 minio

接下来我们先不配置任何东西,直接启动服务

代码语言:txt
复制
./minio server /data

输入完之后我们能看到输出, 告诉了我们默认的AccessKey和SecretKey分别是什么,紧接着是访问地址可以看到端口是9000,这两个地址都是内网地址,如果需要在公网访问,需要自己配置防火墙开放对应的端口,默认的就是9000端口了,如果是云服务器,需要去控制台自己修改安全组,加入一条安全策略即可。

最下面还能看到一条警告,告诉我们,检测到使用了默认的认证凭据,请立即修改,并告诉了我们两个配置项

这里还需要说明一下,我们可以使用进程管理工具让其在后台运行。

代码语言:txt
复制
Endpoint:  http://172.31.108.28:9000  http://127.0.0.1:9000

AccessKey: minioadmin 

SecretKey: minioadmin 



Browser Access:

   http://172.31.108.28:9000  http://127.0.0.1:9000



Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide

   $ mc config host add myminio http://172.31.108.28:9000 minioadmin minioadmin



Object API (Amazon S3 compatible):

   Go:         https://docs.min.io/docs/golang-client-quickstart-guide

   Java:       https://docs.min.io/docs/java-client-quickstart-guide

   Python:     https://docs.min.io/docs/python-client-quickstart-guide

   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide

   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide

Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO\_ACCESS\_KEY' and 'MINIO\_SECRET\_KEY'

我们暂时先不修改任何配置,直接访问IP:9000看看效果。

image.png
image.png

通过上面输出的提示可以知道默认的AccessKey和SecretKey是minioadmin,直接输入

image.png
image.png

这就是主界面了,点击右下角+号,可以看到有上传文件和创建bucket

image.png
image.png

先创建一个bucket,然后回车,选择对应的bucket,上传文件

image.png
image.png

到这里,我们对minio有了简单的了解,紧接着我们要修改下配置,因为默认的认证凭据是不安全的。

文档里面提示(机翻自英文文档,中文文档已经很久不更新了,建议直接读英文):

直到MinIO版本RELEASE.2018-08-02T23-11-36Z,MinIO服务器配置文件(config.json)存储在--config-dir指定的配置目录中或默认为$ {HOME} /.minio。但是从RELEASE.2018-08-18T03-49-57Z之后的版本中,配置文件(仅)已迁移到存储后端(存储后端是启动服务器时传递给MinIO服务器的目录)。

您可以使用--config-dir指定现有配置的位置,MinIO会将config.json迁移到您的后端存储。成功迁移后,当前config.json将重命名为当前--config-dir中不推荐使用的config.json.deprecated。迁移后,所有现有配置都将得到保留。

此外,--config-dir现在是旧选项,计划在将来删除,因此请相应地更新本地启动和可访问的脚本。

代码语言:txt
复制
/data/.minio.sys/config/config.json

默认的文件就是上面这个,不过新版本已经不建议直接改配置文件了,而是用环境变量来做配置

代码语言:txt
复制
export MINIO\_ACCESS\_KEY=minio

export MINIO\_SECRET\_KEY=minio13

./minio server /data

其他的配置需要的时候在做说明,到这里简单的配置就完成了,至于其他的配置比如https,分布式部署,后面有机会可以在详细说明

关于Bucket访问策略

和阿里云bucket一样,这里的bucket同样可以设置只读,只写,读写

image.png
image.png

文件分享,默认的分享是有时间限制的,最大七天,可以通过下图看出来,如果想突破这种限制,可以在 bucket 中进行策略设置。点击对应的 bucket ,edit policy 添加策略 *.*,Read Only,这样就可以直接访问了,没有时间限制,同时只需要按http://${MINIO_HOST}:${MINIO_PORT}/${bucketName}/${fileName} 则可直接访问资源(不需要进行分享操作)。

image.png
image.png
image.png
image.png
代码语言:txt
复制
# 修改为策略之后可以直接这样访问,否则直接跳转到我们的登录界面(我们可以在配置里面关闭掉浏览器直接访问对象存储)

http://XXX.X.X.X:9000/test1/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87\_20200527140551.png

在 HTML 文件中作为静态资源来引用

代码语言:txt
复制
<img src="http://XXX.X.X.X:9000/test1/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87\_20200527140551.png" />

之后我会在后面的文章里使用PHP来进行文件操作,并且搭配ImageMagick以及FFmpeg来实现处理图片以及视频的需求。

参考资料:

Minio官方文档

Minio官方中文文档

利用 MinIO 轻松搭建静态资源服务

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装(Linux平台)
  • 关于Bucket访问策略
  • 在 HTML 文件中作为静态资源来引用
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档