经常写博客或者Markdown文章的同学都知道,图片资源总莫名其妙丢了,我们或者每次把图片随着md文件移过来换过去,或者找一个提供图床服务的产品,又或者扔到自己的服务器,然后将资源目录发布出来。

但是,这些方法总归存在一些问题,随着md文章移动,容易丢失;放在图床服务,不安全且可能存在提供商关闭后续不可用的情况;放在自己服务器,可行但是上传不太方便,然而借助picGo或者picList接合sftp等等,我们可以实现一个比较不错的图床管理,这也是我一度使用的方式。但是今天我要介绍的不仅仅是PicGo+sftp的方式,而是一个开源服务easyImage,它和picGo来结合管理,这样我就可以不用一直开着我服务器的ssh端口了。

先看看easyImage自己本身的搭建后效果:

image-20240406093133828

简单图床 - 广场界面

再看看我通过和picList结合的效果:

image-20240406093343595

easyImage是一个图床服务,自己本身就支持web端图床管理,见图一。常见功能如下:

  • 支持API
  • 支持仅登录后上传
  • 支持设置图片质量
  • 支持压缩图片大小
  • 支持文字/图片水印
  • 支持设置图片指定宽/高
  • 支持上传图片转换为指定格式
  • 支持限制最低宽度/高度上传
  • 支持上传其他文件格式
  • 在线管理图片
  • 支持网站统计
  • 支持设置广告
  • 支持图片鉴黄
  • 支持自定义代码
  • 支持上传IP黑白名单
  • 支持上传日志IP定位
  • 支持限制日上传次数
  • 支持创建仅上传用户
  • 对于安装环境要求极低
  • 对于服务器性能要求极低
  • 理论上支持所有常见格式
  • 更多功能支持请安装尝试···

PicGo是一个图床管理软件,自己本身也支持各种插件,例如sftp,本地,webdav等等存储方式上传图片,而easyImage也提供了picGo的插件,picGo自己本身也支持图片上传管理,按照日期分类,图片水印,压缩等等功能。

image-20240406093820721

我为什么重复使用这两个呢?如果你使用Typora软件来写Markdown文件,那么picGo配置支持后,一旦在Typora中粘贴图片可以触发一键自动上传,极度方便。

image-20240406094318887

所以我后边分为两个过程介绍。只搭建图床服务、搭配picGo。

搭建easyImage图床

搭建服务

  1. 还是docker-compose搭建服务,在自己想要存放图片数据的目录建立docker-compose.yml文件,编写命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.3'
services:
easyimage:
image: ddsderek/easyimage:latest
container_name: easyimage
ports:
- '8088:80' # 访问端口,冒号左侧宿主机端口可以换
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- DEBUG=false
volumes:
- '/docker/easyimage/config:/app/web/config' # easyImage配置文件持久化目录,我放在了`/docker/easyimage`目录
- '/docker/easyimage/i:/app/web/i' # 图片上传目录,如果不想要和配置数据放一起,可以自己换冒号左边宿主机路径

启动服务

1
docker-compose up -d
  1. 如果你要使用docker-cli,则是以下步骤:

拉取镜像

1
docker pull ddsderek/easyimage:latest

启动服务

1
2
3
4
5
6
7
8
9
10
docker run -itd \
--name easyimage \
-p 8080:80 \
-e TZ=Asia/Shanghai \
-e PUID=1000 \
-e PGID=1000 \
-e DEBUG=false \
-v /docker/easyimage/config:/app/web/config \
-v /docker/easyimage/i:/app/web/i \
ddsderek/easyimage:latest

开始使用

  1. 访问IP+8080,即可打开web界面,第一步检测环境,docker搭建的一般没什么问题,下一步即可。

image-20240406100140796

  1. 下一步建议提前确定好自己以后访问图床服务的ip,例如我们搭建完可能要外网访问,那么就得确定好外部网络的ip或者域名以及端口了,这边就得填外网访问的地址。如果内网则IP+8080端口即可,当然后续config或者管理员配置里面也可以更改。然后管理员账号密码,开始安装即可。

image-20240406100204805

  1. 进入首页,可以看到上传面板,支持批量上传,支持同步给出各种使用参考语法。历史和统计就是展示相关功能了。

image-20240406100915863

image-20240406101055166

  1. 广场图片查看,是根据日期分类的,可以进行已上传图片管理操作。

image-20240406101207085

image-20240406103143754

  1. 统计
    简单图床 - 统计界面

  2. 接下来是管理员设置

image-20240406101320947

  • 网站设置:访问路径,标题,关键字,公告,页脚等等显示设置。

  • 界面设置:界面配色,显示等等设置

  • 上传设置:存储目录,方式以及允许的类型,命名,大小等等设置

  • 水印设置:设置水印

  • API设置:给第三方调用的接口开发设置,例如picGo等等

  • 上传压缩、压缩图片:针对图片压缩的设置

  • 图床安全:一些开放功能的设置,例如必须登录用户才能上传,开启API上传等等。

  • 账号密码:用户账号管理

  • 系统信息:系统服务的信息

  • 远程附件、广告设置、图片回收、可疑图片、文件管理:其它设置,具体可以自己研究一下,按需使用。

下载链接

就这么简单的搭建完,其实已经可以愉快的使用了,下面是一些扩展插件,这些插件都需要API设置:

Edge浏览器插件

chrome插件

PicGo我会在下边单独讲,不需要的这一步其实已经可以使用了。

PicGo

虽然我一直提的是PicGo,但是我其实使用的是PicGo的修改版本PicList,你可以认为PicGo的配置方式在picList中一样适用。支持windos、Linux、MacOS

PicList是一款高效的云存储和图床平台管理工具,在PicGo的基础上经过深度的二次开发,不仅完整保留了PicGo的所有功能,还增添了许多新的feature。例如相册支持同步云端删除文件,内置图床额外添加了WebDav、本地图床和SFTP等。PicList同时增加了完整的云存储管理功能,包括云端目录查看、文件搜索、批量上传下载和删除文件,复制多种格式文件链接和图片/markdown/文本/视频预览等,另外还有更加强大的相册和多项功能新增或优化。

下载地址:https://github.com/Kuingsmile/PicList/releases/tag/v2.8.0

image-20240406104852364

picList本身支持很多服务的图床管理,例如sftp模式,自己选取自己的上传方式,进行配置即可,因为我是picGo迁移过来的,之前没有使用内置sftp的配置,而是使用了sftp-upload插件(没错,picGo有强大的插件支持)。

内置sftp

image-20240406104537499

sftp插件

image-20240406104559655

部分插件列表

image-20240406104814414

配置easyImage

  1. 确保安装picList后,打开点击插件,搜索web-uploader 1.1.1 并安装

image-20240406105158792

  1. 点击图床-自定义web图床,点击Default编辑按钮,或者新建一个也行。按照如下方式填写,然后点击确定并设置为默认图床。

EasyImage简单图床使用PicGo上传图片

1
2
3
4
API地址:https://png.cm/api/index.php // 输入你网站api地址
POST参数名: image
JSON路径: url
自定义Body: {"token":"1c17b11693cb5ec63859b091c5b9c1b2"} // 这里输入你网站生成的token

登录图床后台 token和API地址可以在图床后台API设置查看和设置

image-20240406105803834

  1. 登录图床后台,图床安全->高级设置->开启API上传

image-20240406105558318

关闭其它图床配置显示

因为picList默认其它图床即使不使用,配置也在那放着,强迫症可以去掉:设置-上传设置,去掉不用的勾选即可。

image-20240406105942878

picList是一个软件,其它功能其实都点击几遍就明白了,就不具体介绍了。

Typora和PicList结合

自己本机启动PicList后,进入typora设置,图像,开启上传服务设定即可。将插入图片时下拉选项选择为上传就可粘贴图片自动触发上传,我没开启自动上传,每次都得自己确认一遍点击上传才触发。

image-20240406110434659