写在前面

在互联网的知识里遨游时,咱们或许需求写博客/做笔记来分享咱们的知识,现在在线笔记东西十分多,当然,也能够挑选本地 markdown 文档 图床的计划来实现[一处写文章,处处来宣布]的高效流程,再也不用重复上传图片和担心防盗链啦!!

可是,图床的计划也有许多种:

  • 云服务厂商供给的目标存储服务(十分稳定)
  • GitHub 仓库(国内访问随缘,咱们自己能够有办法解决,可是博客的读者不一定)
  • 自己建立目标存储服务(本文的要点)

MinIO 是什么

官网是这样说的:

MinIO 是一种高性能、S3 兼容的目标存储。 它专为大规模 AI/ML、数据湖和数据库作业负载而构建,并且它是由软件定义的存储,不需求购买任何专有硬件,就能够在云上和一般硬件上拥有分布式目标存储。 MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。

简单来说,咱们能够用它来建立自己的目标存储服务

附上官网:

MinIO | 高性能分布式存储,私有云存储

装置和布置 MinIO — MinIO Object Storage for Container

我挑选了运用 MinIO 来建立自己的图床,原因:1.我的需求不大;2.害怕图床被刷流量(没钱~~)3.自己动手实践,增强自身才能

话不多说,接下来开端吧~~

环境预备

  1. 需求有一台云服务器,云服务厂商许多,自由挑选,最好是固定带宽不限流量的(这样就不怕被歹意刷流量了)

  2. 装置 Docker ,能够参阅Docker 教程 | 菜鸟教程 (runoob.com),根据自己的体系挑选对应的教程

  3. 需求装置好 PicGo ,本文的 PicGo 版别为 2.3.1 ; PicGo 是一个用于快速上传图片并获取图片 URL 链接的东西

    官方地址:

    下载地址

    PicGo 访问速度快一点

  4. Typora (或者其他能够运用 PicGo 的笔记东西)

Docker 布置 MinIO

  1. 拉取 MinIO 镜像
docker pull quay.io/minio/minio
  1. 创立装备文件(作为MinIO容器挂载的装备文件)
mkdir -p /home/docker/minio/data
vim /home/docker/minio/minio.conf

minio.conf 内容如下:(记住修改为自己的账号和密码)

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environmentMINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me
​
# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.MINIO_VOLUMES="/mnt/data"# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine
  1. 创立并运转容器
docker run -dt                  
 -p 9000:9000 -p 9090:9090           
 -v /home/docker/minio/data:/mnt/data          
 -v /home/docker/minio/minio.conf:/etc/config.env     
 -e "MINIO_CONFIG_ENV_FILE=/etc/config.env"   
 --name "minio"              
 quay.io/minio/minio server --console-address ":9090"

参数解读

  • -p : 映射端口,其间9000端口用于访问,9090端口用于控制台
  • -v : 挂载文件,/home/docker/minio/data 用于寄存存储的数据,/home/docker/minio/minio.conf 装备文件
  • -e : 设置参数使得 MinIO 的装备文件为容器内的 /etc/config.env

现在,能够通过 域名/IP:9090 的方法访问 MinIO 的控制台了

控制台设置 MinIO

  1. 点击 Create a Bucket 创立一个新的存储桶

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

咱们会得到这样的一个存储桶:这儿以后就会是咱们寄存图片的当地

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

  1. 点击这个存储桶,能够看到,它现在的访问权限是 Private (私有)的,咱们需求设置它为 ReadOnly /ReadWrite,这儿我设置为ReadOnly

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

  1. 现在能够看到它的访问权限已经变为 custom (自定义)的了,咱们能够点击右上角的文件夹图标,进入存储桶的目录结构,并上传一张图片来测试一下

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

现在,咱们的图床就已经布置好了,接下来,咱们就能够去装备咱们的 PicGo 来实现便捷的图片上传!!

PicGo 运用 MinIO 图床

  1. 首先,咱们需求装置 PicGo,在上面的【环境预备】中已有阐明

  2. 由于 PicGo 自身的支撑并不包含 MinIO ,所以咱们需求下载 MinIO 对应的插件并装置(直接搜索 minio)

    插件官网:GitHub – Herbertzz/picgo-plugin-minio

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

  1. 在下一步之前,咱们需求得到图床的 accessKey 和 secretKey,点击右边的 Create access key 按钮,创立就能够了(这儿我已经创立好了一个,刚开端这儿应该是空白的),一定记住保存好这两个字符串,secretKey 只会呈现一次!! 下面咱们会用到它们。

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

  1. 装置完成后,点击图床设置,点击 MinIO 图床,然后就能够看到需求装备的一些东西,下图是一些阐明,按照对应的阐明把信息填好就能够了

    • accessKey 和 secretKey 便是咱们上一步创立好的
    • port :端口需求填写9000,或者能够不填,运用HTTP或HTTPS的默认端口,可是需求在服务器设置 Nginx 来反向代理到 9000 端口,这儿就不展开了

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

现在,咱们就预备好了,能够运用 PicGo 来上传一张图片试试了

Typora 运用 PicGo

不知不觉来到了最终一步,现在只需求在 Typora 中开启 PicGo 的图片上传功用就能够了(或者其他笔记东西也能够,笔者运用的是Typora)

【 MinIO + PicGo + Typora】 建立个人图床参阅,向“歹意刷流量”say no

接下来,让咱们纵情地开端写博客记笔记吧~~

写在最终

现在咱们只是完成了写博客的需求,MinIO 也供给了许多言语版别的 SDK 供咱们运用,以后打算写一个东西类整合到项目中去,届时再发博客,如果感兴趣的话,费事点个重视啊~~

如果对你有用的话 点个赞再走呗~~


参阅文章

PicGo minio 图床 – mikemhm – 博客园 (cnblogs.com)

运用 MinIO 建立归于自己的目标存储(OSS) – Jetsung – 博客园 (cnblogs.com)

Minio Nginx建立私有图床,写博客从未这么爽 – 知乎 (zhihu.com)

运用Minio与Picgo建立个人图床 | Kevin2li’s Blog

Docker 建立 Minio 目标存储服务 – (juejin.cn)

【项目实践】手把手教你自建高性能目标存储服务器 – (juejin.cn)