简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床

2024-04-10 19:09:11 2点赞 19收藏 1评论

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

MinIO 是一个对象存储系统,它将数据以对象的形式进行存储。这些对象可以是各种类型的数据,例如文件、图片、视频等。我们可以在 VPS 服务器或者自己的 Nas 上进行部署,本文主要用它来存储图片作为图床来使用,我们可以直接在 MinIO 后台管理界面直接上传图片,通过 https://domain.com/bucket/image.png 这种形式访问图片。

PicList 是一款高效的云存储和图床平台管理工具,通过 PicList 上传图片时,可以自动对图片进行预处理,例如压缩图片、格式转换、添加水印等,同时在上传成功后,还会自动拼接 URL 地址。

Typora 是一款 Markdown 编辑器和阅读器,通过图像设置将上传服务选择为 PicList,即可实现图片拖入 Typora 后,自动调用 PicList 进行图片的预处理,然后将其上传至 MinIO 中,实现图片的无感上传。

MinIO

安装 MinIO

  1. MinIO 的安装十分简单,只需要使用官方一键脚本即可安装

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240330094156.0.0_amd64.deb -O minio.deb sudo dpkg -i minio.deb

除此之外,也可以直接下载二进制文件,并添加运行权限

wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/

  1. (可选) 创建 systemd 文件 vim /usr/lib/systemd/system/minio.service ,对于使用一键脚本安装的用户,systemd 文件脚本会自动进行创建,只需按照自己的需求编辑即可

[Unit] Description=MinIO Documentation=https://min.io/docs/minio/linux/index.html Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio ​ [Service] WorkingDirectory=/usr/local ​ User=root Group=root ProtectProc=invisible ​ EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi" ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES ​ # MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=) # This may improve systemctl setups where other services use `After=minio.server` # Uncomment the line to enable the functionality # Type=notify ​ # Let systemd restart this service always Restart=always ​ # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 ​ # Specifies the maximum number of threads this process can create TasksMax=infinity ​ # Disable timeout logic and wait until process is stopped TimeoutStopSec=infinity SendSIGKILL=no ​ [Install] WantedBy=multi-user.target ​ # Built for ${project.name}-${project.version} (${project.name})

  1. 创建环境变量文件 vim /etc/default/minio,其中主要配置 MinIO 的用户名、密码、存储卷、控制面板端口等

# 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 environment ​ MINIO_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_OPTS sets any additional commandline options to pass to the MinIO server. # For example, `--console-address :9001` sets the MinIO Console listen port MINIO_OPTS="--console-address :9001" ​ # 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 ​ # Uncomment the following line and replace the value with the correct hostname for the local machine and port for the MinIO server (9000 by default). ​ #MINIO_SERVER_URL="http://minio.example.net:9000"

  1. 启动 MinIO

systemctl start minio.service systemctl enable minio.service

创建 Bucket

  1. 通过 http://ip:9001 访问 MinIO 的控制面板,使用环境变量中设置的用户名与密码进行登录

  2. 点击左侧的 Buckets,再点击右上角的 Create Bucket 创建一个存储桶,用于存储上传的图片

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床
  1. 给存储桶进行命名,桶名会在访问时,拼接在 URL 中

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床

权限设置

  1. 创建完成后,桶中的文件还无法进行访问,需要对其设置访问权限,进入桶的设置后,依次点击 Anonymous -> Add Access Rule 添加访问规则

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床
  1. 对于公开访问的图床,我们可以将访问权限设置为 readonly

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床
  1. 返回桶设置的首页,发现 Access Policy 处变为 custom,说明设置成功了

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床
  1. 对于非公开访问的图片,例如仅限自己的网站访问,则可以点击 custom,直接编辑访问规则,填入以下规则,并将 Resource 与 aws:Referer 修改为自己的桶名与网站域名

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["*"] }, "Action": "s3:GetObject", "Resource": ["arn:aws:s3:::test/*"], "Condition": { "StringLike": { "aws:Referer": ["https://zhichao.org/*"] } } } ] }

PicList

PicList 可以直接在官方文档进行下载,打开 PicList 后,在左边图床中选择 AWS S3 进行编辑,完成以下设置后,点击保存即可

  • AccessKeyId - MinIO 用户名

  • SecretAccessKey - MinIO 密码

  • Bucket - 桶名

  • 设定自定义节点 - API 地址 (例如 http://ip:9000)

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床

除此之外,来到上传页面,点击上方的图片处理,可以对上传的图片进行压缩、格式转换等操作

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床

Typora

Typora 1.6.0 以上版本直接参照下图,选择 PicList 路径即可,1.6.0 以下版本则需参照 PicList 文档进行设置

完成以上步骤后,在 Typora 中写作时,上传图片只需要将图片拖入对应位置,即可自动完成图片的处理、上传。

简化 Markdown 写作流程 | 使用 MinIO 与 PicList 自建对象存储与图床


展开 收起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1899元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1779元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2679元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1979元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1329元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4279元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3279元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起
1评论

  • 精彩
  • 最新
  • 你的写作内容太有趣了!用 MinIO 与 PicList 自建对象存储与图床,简化 Markdown 写作流程,这种思路真的太奇妙了。祝你写作愉快,期待你更多的作品!

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
19
扫一下,分享更方便,购买更轻松