Minio日常管理看这一篇足够了

1,873 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

上一篇文章中我们介绍了MinIO的主要特性和如何安装。 接下来我们介绍下如何进行日常管理,和如何使用nginx进行反向代理。

MinIO 客户端

MacOS 客户端安装

使用Homebrew安装mc

brew install minio/stable/mc
mc --help

Windows 客户端安装

下载二进制文件

把下载的文件放在固定目录,如:C:\minio 。把该目录配置到环境变量,方便 cmd 命令窗口直接执行指令。

我的电脑--右键--最下方属性---高级系统设置--环境变量--系统变量--选中Path--编辑--新建--输入C:\minio

image-20211009092909778

打开 CMD 窗口 输入 mc --help 验证是否安装成功。

添加云存储服务

添加一个或多个S3兼容的服务,请参考下面说明。mc将所有的配置信息都存储在~/.mc/config.json文件中。

mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]

别名就是给你的云存储服务起了一个短点的外号。S3 endpoint,access key和secret key是你的云存储服务提供的。API签名是可选参数,默认情况下,它被设置为"S3v4"。

示例:MinIO云存储

从MinIO服务获得URL、access key和secret key。

mc config host add myminio http://10.9.2.3:9000  ProEXEC  ONRPROEXEC  --api s3v4

查看文件

mc ls myminio

创建存储桶

mc mb myminio/testbucket
Bucket created successfully `myminio/testbucket`.

支持的命令

ls       列出文件和文件夹。
mb       创建一个存储桶或一个文件夹。
cat      显示文件和对象内容。
pipe     将一个STDIN重定向到一个对象或者文件或者STDOUT。
share    生成用于共享的URL。
cp       拷贝文件和对象。
mirror   给存储桶和文件夹做镜像。
find     基于参数查找文件。
diff     对两个文件夹或者存储桶比较差异。
rm       删除文件和对象。
events   管理对象通知。
watch    监视文件和对象的事件。
policy   管理访问策略。
config   管理mc配置文件。
update   检查软件更新。
version  输出版本信息。

Admin 常用命令

匿名访问

设置可以匿名访问,作为图床使用时匿名访问大部分是要打开的,具体命令如下:

mc policy set public myminio/testbucket

policy 使用:

Name:
  mc policy - manage anonymous access to buckets and objects

USAGE:
  mc policy [FLAGS] set PERMISSION TARGET
  mc policy [FLAGS] set-json FILE TARGET
  mc policy [FLAGS] get TARGET
  mc policy [FLAGS] get-json TARGET
  mc policy [FLAGS] list TARGET

FLAGS:
  --recursive, -r               list recursively
  --config-dir value, -C value  path to configuration folder (default: "/Users/chenbing/.mc")
  --quiet, -q                   disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
  
PERMISSION:
  Allowed policies are: [none, download, upload, public].

FILE:
  A valid S3 policy JSON filepath.

EXAMPLES:
  1. Set bucket to "download" on Amazon S3 cloud storage.
     $ mc policy set download s3/burningman2011

  2. Set bucket to "public" on Amazon S3 cloud storage.
     $ mc policy set public s3/shared

  3. Set bucket to "upload" on Amazon S3 cloud storage.
     $ mc policy set upload s3/incoming

  4. Set policy to "public" for bucket with prefix on Amazon S3 cloud storage.
     $ mc policy set public s3/public-commons/images

  5. Set a custom prefix based bucket policy on Amazon S3 cloud storage using a JSON file.
     $ mc policy set-json /path/to/policy.json s3/public-commons/images

  6. Get bucket permissions.
     $ mc policy get s3/shared

  7. Get bucket permissions in JSON format.
     $ mc policy get-json s3/shared

  8. List policies set to a specified bucket.
     $ mc policy list s3/shared

  9. List public object URLs recursively.
     $ mc policy --recursive links s3/shared/

添加用户

mc admin user add myminio/ testuser testuser
mc admin user enable myminio/ testuser
mc admin policy set myminio/ readwrite user=testuser

Nginx 反向代理配置

在自己的nginx配置文件中添加如下配置:

server {
 listen 80;
 server_name example.com;
 location / {
		proxy_set_header Host  $host;
    proxy_pass http://localhost:9000;
 }
}

注意:

  • 用你自己的主机名替换example.com。
  • 用你自己的服务名替换http://localhost:9000
  • 为了能够上传大文件,在http上下文中添加client_max_body_size 1000m;,只需按你的需求调整该值。默认值是1m,对大多数场景来说太低了。
  • minio在校验signature是否有效的时候,必须从http header里面获取host,所有header头的设置 proxy_set_header Host $host; 一定不能省略

总结

本篇文章介绍了,minio在日常使用中的基本操作,以及如何搭配nginx进行使用,学会这些在你平时应用已经可以独当一面了。 下一篇我会介绍如何结合 Typora 使用,搭建自己的协作利器。