第一章:minio介绍与安装

编程知识 更新时间:2023-05-02 19:02:06

章节快捷访问:

第一章:minio介绍与安装

https://blog.csdn/hzw2312/article/details/106077729

第二章:minio单机版,使用客户端备份文件

https://blog.csdn/hzw2312/article/details/106078150

第三章:minio的javaAPI

https://blog.csdn/hzw2312/article/details/106078390

第四章:minio的presigned URLs上传文件

https://blog.csdn/hzw2312/article/details/106078604

--------------------------------------------------

 

最近公司需要做一个文件服务器。找了很久,最后还是决定用minio来做。先说说其他的方案为什么不用。

nginx

我们一般都使用nginx来做web转发,负债均衡等工作。其他他也可以作为一个文件服务,只需要添加上传模块跟上传进度模块即可。但是使用他过后,后期的文件的备份需要在找别的工具来实现,他并不支持。

MongoDB File Server

MongoDB File Server 致力于小型文件的存储,比如博客中图片、普通文档等。由于MongoDB 支持多种数据格式的存储,对于二进制的存储自然也是不话下,所以可以很方便的用于存储文件。由于 MongoDB 的 BSON 文档对于数据量大小的限制(每个文档不超过16M),所以本文件服务器主要针对的是小型文件的存储。显然不符合大部分文件服务的要求,我们肯定有很多文档的大小是超过16M的。但是对于大型文件的存储(比如超过16M),MongoDB 官方已经提供了成熟的产品 GridFS。GridFS这个东西是按照块来存储的,默认是大小为255 kB,什么意思呢。就是他会把你的源文件分成无数个文件块来存储,在你访问的时候在组装起来返回给你。他不支持更新文档的修改,需要删除了在上传。在官网的文档中明确说了:如果您需要自动更新整个文件的内容,请不要使用GridFS(Do not use GridFS if you need to update the content of the entire file atomically)。看到这里估计就有一大票人放弃了。

ceph、fastFDS、vsftpd等一大票Linux的文件服务我们用不了,因为要支持widnows部署。我们不可能在windows上搞一个docker来跑吧!最后,我们选择了minio。

minio

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

部署模式

minio支持单机部署、多租户部署、分布式部署。支持原始文件存储已经纠删码模式存储。在进行单机部署的时候,还可以使用minio的客户端工具进行备份。接下来我们详细说明他的单机部署+客户端备份。

SDK(API)

minio提供了很多语言的SDK跟API支持:javascript,Java,python,Golan,.Net。能够方便程序员们快速的跟应用程序进行接入。详情参见官网文档https://docs.minio.io/

安装

说了一堆,我们开始安装吧。我们在linux上进行安装。

创建目录:sudo mkdir minio

下载安装包:sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio

如果你在使用命令下载的时候,下载不下来。可以多试几次,或者直接用别的机器访问上面的url直接进行下载。然后上传到服务器上去。

赋予执行权限:chmod +x minio

启动minio:./minio server --config-dir /etc/minio /data/minioData

执行启动后打印

ktwlrj@ktwlrj80:/usr/local/minio$ sudo ./minio server --config-dir /etc/minio /data/minioData
Endpoint:  http://192.168.51.80:9000  http://127.0.0.1:9000    
AccessKey: minioadmin 
SecretKey: minioadmin 

Browser Access:
   http://192.168.51.80: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://192.168.51.80: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'

这样我们的minio服务端就启动成功了,最后一行提示我们要尽快修改minio的密码。我们先不管,先试试能不能访问

测试

在浏览器输入:http://192.168.51.80:9000

在输入控制打印的默认的AccessKey和SecretKey:

AccessKey: minioadmin

SecretKey: minioadmin

点击登录

进入系统后,我们先要点击右下角的“+”按钮,创建一个文件桶(输入名称后,回车即可),在上传文件到这个文件桶中。Create bucket(创建文件桶)、Upload file(上传文件)。

 

上传成功

现在我们去服务器,我们启动时指定的目录去看看,文件桶相当于文件目录,这里没有使用纠删码的模式,所以直接就是源文件了。当我们线上运行的项目已经有源文件了,在使用minio的时候,可以直接指定该目录为minio的文件目录就行了。

由于我们重新制定了证书目录(/etc/minio),现在我们去看看证书目录有啥

里面是啥也没有,如果我们需要https,证书就需要放在这里面。默认的证书目录是${HOME}/.minio/certs。

分享链接

现在已经可以正常的上传文件了,在文件列表界面有一个分享按钮,我们可以点击分享,将生成文件的访问地址。

这里可以指定链接的有效时间,最多7天,最小的单位是分钟。在有效时间过期后在访问图片时,会提示失效。

设置启动脚本

我们的minio之前是通过命令行直接启动的,并没有指定后台运行,而且端口跟AccessKey和SecretKey都还是使用默认的,这里需要在启动的时候指定一下。

export MINIO_ACCESS_KEY=username
export MINIO_SECRET_KEY=password
nohup sudo /usr/local/minio/minio server --address=0.0.0.0:9000 --config-dir /etc/minio /data/minioData > /usr/local/minio/minio.log 2>&1&

可以将上面的命令放在一个自己新建的.sh可执行文件中,记得给当前用户加上执行权限

chmod u+x *.sh

这样我们的minio服务端基本的配置算是ok了。

 

 

 

 

 

 

更多推荐

第一章:minio介绍与安装

本文发布于:2023-04-28 04:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/b29c9173abf89a20e9b59d87163bb4ff.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:minio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 107601文章数
  • 27226阅读数
  • 0评论数