Typora结合PicGo使用minio插件搭建个人图床上传图片

2024-11-10 群晖 docker 图床

引言

我们在平时写文章或者博客的时候,经常使用markdown格式来编写,而Typora就是一款Markdown编辑器被大家使用,但是我们在写作过程当中经常需要插入图片,由于图片保存在本地,插入到文章之后引用的也是本地地址导致我们写好的文章发布出去的时候图片无法被加载。所以我们需要一个专门的地方来存放这些图片,而这个地方就叫图床,像微信公众号等大厂家的写作平台都自带图床,写作的时候我们把图片上传之后在插入到平台的写作编辑器里即可,对于我们本地写作的话也可以实现这样的功能,就是需要自建图床,本文我们介绍使用minio来搭建一个图床,然后借助PicGO这款软件,我们在Typora里面配置PicGo之后,当我们插入图片之后,会自动把图片上传到minio图床内,并将Typora编辑器内的图片地址修改成图床图片的访问地址,这样当我们文章写好发布出去的时候就不用担心图片无法加载了

涉及的软件

  • Typora
  • minio
  • PicGO
  • NodeJs(PicGo安装需要)

开始动起来吧

一、使用minio搭建对象存储

1. 什么是minio

minio是一个高性能的对象存储服务,支持分布式存储,具有高扩展性、高可用性,部署方式多样,部署简单,官方有详细的安装文档可参考

2. 使用docker部署minio

minio的安装方式很多,我们这里选择使用docker部署

docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-d --restart=always \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=passwd" \
-v /volume1/docker/minio/data:/data \
-v /volume1/docker/minio/config:/root/.minio \
minio/minio server /data --console-address ":9001" 

3. 登录minio服务web控制台创建bucket以及accessKey和secretKey

  • 创建bucket并配置匿名访问权限为readonly

点击Buckets->点击右上角的Create Buckes ->然后在Create Bucket页面输入Bucket Name

Snipaste_2024-10-30_15-59-43

Snipaste_2024-10-30_16-00-34

设置创建的Bucket的匿名访问为radonly

Snipaste_2024-10-30_16-02-05

  • 创建accessKeysecretKey并记录下来,在后面PicGo配置插件minio插件时需要使用

Snipaste_2024-10-30_16-17-01

二、安装PicGo,配置minio插件

1. PicGo介绍

PicGO是一个用于快速上传图片并获取图片URL链接的工具,PicGO官网 下载安装即可,需要注意的是这款软件的安装依赖Nodejs,所以需要先安装NodeJs环境。

软件安装比较简单,这里就不介绍

2. PicGo安装配置minio插件

minio插件全称picgo-plugin-minio,可以在它的官网查看更多信息,安装好PicGo软件之后在软件的插件设置界面输入关键字minio搜索插件,然后点击安装即可,安装完成会显示已安装,然后在图床设置 选项里面可以看到多出一个minio 图床选项

Snipaste_2024-10-30_16-30-44

Snipaste_2024-10-30_16-32-37

PicGo配置minio图床,具体的使用以及参数说明可以参考picgo-plugin-minio插件的官方说明

Snipaste_2024-10-30_16-35-51

三、安装Typora并配置PicGo自动上传

Typora的安装没有什么好说明的,需要注意的是这款软件是以前是不收费的,后来改成收费软件了,觉得好用可以支持一下正版,这里主要说说Typora如何配置PicGo来实现图片自动上传的

文件->偏好设置->图像进行设置

  1. 插入图片时选项设置成上传图片

  2. 上传服务设定选项进行picgo服务相关设置

配置完成可以点击验证图片上传选项进行验证

Snipaste_2024-10-30_16-48-40

总结

回顾整个配置过程并不复杂,需要注意PicGo安装minio插件的时候,我开始点击安装很多次都安装不上,最后怀疑是个人网络问题导致,开了科学上网之后安装成功,碰到类似问题的可以参考处理一下。