目的

1.通过minio搭建自己的对象存储系统
2.通过picgo实现图床功能

1.docker 部署minio

MinIO 是一款高性能、分布式的开源对象存储系统,它专为云原生应用设计,旨在解决非结构化数据增长的需求。MinIO 支持 Amazon S3 API 兼容接口,这意味着它可以与现有的 S3 生态系统无缝集成,并且能够轻松地与其他服务和工具进行交互。此外,MinIO 提供了丰富的功能集,包括高可用性、数据冗余、加密等特性,适用于多种场景下的大规模数据管理.

1 部署

官网地址
英文:https://min.io/
中文:https://www.minio.org.cn/
Minio_兼容Amason的S3分布式对象存储项目,采用Golang实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mkdir -p /var/minio/data
mkdir -p /var/minio/connfig

docker run \
-p 8085:9000 \
-p 8086:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ROOT_USER=xxxx用户账号xxx" \
-e "MINIO_ROOT_PASSWORD=xx账号密码xx" \
-v /var/minio/data:/data \
-v /var/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"

注意:
9000是访问资源的接口(个人改为8085)
9090是控制台的接口(个人改为8086)

2. 部署好后访问控制台

例如:

1
http://你的ip:自定义的控制台端口

image.png

3.配置存储桶

1
Buckets->Create Bucket->设置自定义名字如picgo2或者picgo->确定创建(Create Bucket)

image.png
image.png

4.配置密钥访问

1
Access Keys->Create access keys->保存好Access key和Secret key->点击确定(Create)

image.png
image.png

ps:其中的Restrict beyond user policy 可以指定该密钥访问哪个桶,及其相应权限,默认所有桶及所有权限

5. minio 控制台wss请求处理

直连ip情况下不存在该问题,
如果用nginx代理minio的控制台,那么需要http 1.1处理minio的wss请求

1
2
3
4
5
6
        ...
       # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";  # 直接设置为"upgrade"
        ...

2.picgo 安装minio插件

PicGo 是一款专为快速上传图片并获取图片 URL 链接而设计的开源工具,它不仅简化了图片管理流程,还支持多种图床服务,成为内容创作者、开发者和技术博主等用户的得力助手

官网下载地址

1.插件安装

picgo-插件设置-搜索minio-安装minio的插件
image.png

2.minio插件配置(安装后才有minio图床)

图床设置-minio图床,
记得设置为默认图床
点击配置
填上:
图床配置名:自定义
endpoint: 你的minio ip或者域名
port:注意非控制台端口:比如本文的8085(9000)
useSSL:不开
accessKey:上文自己保存的minio的配置
secretKey:上文自己保存的minio的配置
bucket:填写桶名比如:我自己的picgo
同名文件:选覆盖
基础目录:可以不填
自定义域名: 可以不填,我这边使用了nginx代理转发了minio,所以配置了minio的域名
自定义基础路径:可以不填,有默认值
自动归档:默认开启,PicGo程序会自动帮你按照yyyy/MM/dd的格式归档
image.png
image.png
image.png

3.普通方式使用

上传区上传你的图片即可
image.png