小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
在上一篇文章中我们介绍了MinIO的主要特性和如何安装。 接下来我们介绍下如何进行日常管理,和如何使用nginx进行反向代理。
MinIO 客户端
MacOS 客户端安装
使用Homebrew安装mc
brew install minio/stable/mc
mc --help
Windows 客户端安装
下载二进制文件
把下载的文件放在固定目录,如:C:\minio 。把该目录配置到环境变量,方便 cmd 命令窗口直接执行指令。
我的电脑--右键--最下方属性---高级系统设置--环境变量--系统变量--选中Path--编辑--新建--输入C:\minio
打开 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 使用,搭建自己的协作利器。