Minio(docker部署)+PicGo 打造个人图床+Typora 调用图床
一、Minio部署
1、docker-compose方式部署minio
mkdir /app/minio
cd /app/minio
vim /app/minio/docker-compose.yaml
version: '3.8'
services:
minio:
image: quay.io/minio/minio
container_name: minio
restart: always
ports:
- "127.0.0.1:9000:9000" # 采用nginx反代,不对外暴露端口,端口映射采用127.0.0.1:{port}:{port}
- "127.0.0.1:9001:9001"
environment:
MINIO_ROOT_USER: "crazyoss"
MINIO_ROOT_PASSWORD: "crazy1997."
MINIO_BROWSER_REDIRECT_URL: "https://oss.xxxx.de/minio/ui" # 这里填写的域名地址是反代了minio console页面
volumes:
- ./minio-data:/data
command: server /data --console-address ":9001"
2、配置nginx进行minio api 和console端口的反代
vim /etc/nginx/conf.d/minio.conf
upstream minio_s3 {
least_conn;
server 127.0.0.1:9000;
}
upstream minio_console {
least_conn;
server 127.0.0.1:9001;
}
server {
listen 443 ssl;
server_name oss.xxx.de;
# 文件上传限制大小 0为不限制
client_max_body_size 0;
access_log /var/log/nginx/minio-access.log;
error_log /var/log/nginx/minio-error.log;
# tls config
ssl_certificate "/etc/nginx/cert/xxxx.de/fullchain.pem";
ssl_certificate_key "/etc/nginx/cert/xxxx.de/privkey.pem";
ssl_session_cache shared:MozSSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
# 反代minio s3 api 接口9000
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_cache off;
proxy_set_header Upgrade $http_upgrade;
proxy_pass http://minio_s3; # This uses the upstream directive definition to load balance
}
# 反代minio的console web管理ui页面 9001端口,由于不想多使用一个域名,通过域名路径的方式访问web页面
location /minio/ui/ {
rewrite ^/minio/ui/(.*) /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
proxy_pass http://minio_console; # This uses the upstream directive definition to load balance
}
}
3、验证成果,自行创建bucket

二、Picgo配置Minio
1、通过Minio插件进行配置




三、Typora调用Picgo进行图床复制上传
