FengYuchen
2025-10-02
点 赞
0
热 度
6
评 论
0

MinIO+Picgo实现图片上云

文章摘要

智阅GPT

简介

对象存储服务(Object Storage Service,简称OSS) 是一种基于网络的数据存取服务,主要用于存储和管理非结构化数据,如文本、图片、音频和视频等。OSS 提供了高可靠性、高可用性和低成本的云存储解决方案,适用于各种应用场景。

对于个人而言,oss可以与markdown对接,实现图片上云,全网都可以访问。

阿里云、腾讯云等互联网大厂都提供了对象存储服务(阿里云oss、腾讯云cos等)。但大厂提供的存储服务有一个致命缺陷:按量计费。低廉的存储费用确实吸引人,但流量费用并不低,普遍在0.8元/g左右。更严重的是,各大厂商都不提供安全服务,当oss被恶意刷流量时无法自动停止,因此造成高昂的流量费用。有人甚至两天被刷20TB流量,账单过万。

因此,本文将介绍如何自建一个对象存储服务,实现所需功能的同时避免风险。在开始之前,你需要拥有:

  1. 一台大厂的云服务器(带公网ipv4),或者 一台nas(带公网ipv6)。
  2. 一个域名,绑定云服务器的ip,无需备案,但是访问控制台需要(如果绑定nas的ipv6则不需要备案)
  3. 明白如何配置反向代理,推荐使用lucky。

安装MinIO

我们使用开源项目MinIO搭建oss。这里以绿联nas的docker进行演示。

先进入文件管理,建立一个文件夹,命名为oss:

image-20250926195140556

右键,进入属性,查看文件真实路径并且记录下来:

image-20250926195244222然后打开docker:

image-20250926195028878

进入docker compose(绿联这边叫项目),然后新建项目:

image-20250926195456404

路径选你新建的文件夹。

之后,复制以下代码到yaml里面,注意我提醒的要修改的地方:

version: '3.8'

services:
  minio:
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
    container_name: minio
    restart: unless-stopped
    environment:
      MINIO_ROOT_USER: 填你想要设置的账号名,注意10个字母以上
      MINIO_ROOT_PASSWORD: 填你想要设定的密码,注意10个字符以上,要同时包含字母和数字
      MINIO_API_REQUESTS_MAX: 10000
      MINIO_API_REQUESTS_RATE_LIMIT: 1000
    ports:
      - "9000:9000"   # API端口,别改
      - "9001:9001"   # 控制台端口,别改
    volumes:
      - 填你前面保存的地址,注意-和地址之间有一个空格
    command: server --console-address ":9001" --address ":9000" /data

然后创建:

image-20250926200326521

下载可能比较慢,耐心等待部署完成即可:

image-20250926201019999

网络配置

我演示使用域名绑定ipv6地址,并且绑定20000端口进行反代。注意,这只是一个简易示例,具体配置请去查找专门的教程。

动态域名绑定:

image-20250926201341074

ssl设置:

image-20250926201401404

设置反代:

image-20250926201424283

添加api的反代子规则:

image-20250926201610337

添加控制台的反代子规则:

image-20250926201758146

重定向别忘了:

image-20250926201837345

之后就可以通过域名访问控制台了。

MinIO控制台初始化

如果绑定的域名已备案,或者是ipv6访问,可以通过配置的控制台域名访问控制台:

image-20250926202157310

使用之前设定的账号密码登录:
image-20250926202235289

然后就可以进入主界面,然后点击中央的Create a Bucket

image-20250926211522877

填入自己想要的桶名,然后创建:

image-20250926211624912

点击这个bucket:

image-20250926211316510

进入界面,点击Anonymous

image-20250926211419640

点击Add Access Rule

image-20250926211842902

第一行填/,然后点Save

image-20250926212046198

然后就可以了,你的oss已经配置好了。

oss的备份

由于采用了docker compose进行部署,所以存储库的备份相当的容易,容易地出乎意料:直接把整个文件夹备份。

image-20250926212512809

就是这个文件夹,之前我们创建的,整个复制粘贴走就行。如果原文件夹损毁,可以用备份的文件夹通过docker compose进行恢复。恢复之后,所有数据,包括用户数据都将完好如初。

markdown接入oss

这里使用typora+picgo进行教学。

picgo部分

浏览器搜索picgo:

image-20250926213427256

点进去,点击快速开始,然后进入山东大学镜像站下载:

image-20250926213604764

下载这个文件:

image-20250926213748060

之后正常安装即可。

安装之后,从右下角打开:

image-20250926214128161

然后先打开魔法上网,这需要自行解决。之后点击插件,搜索minio

image-20250926214411156

点击右下角安装,我这里已经安装完了。

点击左侧列表的图床设置-MinIO图床,然后进入设置页面:

image-20251002192321468

参照以下提示填写:

image-20251002192958425

image-20251002193322996

之后点击确定,然后再点设为默认图床

image-20251002193423123

typora部分

打开typora,进入偏好设置,然后点击图像,按照以下页面设置:

image-20251002193648966

之后在typora中插入图片时,就会发现图片自动上传到oss,且使用oss的链接了。


用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

FengYuchen

estj 总经理

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

欢迎来到我的博客

13 文章数
7 分类数
2 评论数
9标签数