写博客时,配图这件事看起来简单,真正整理起来却有不少零碎步骤:截图、压缩、转格式、上传,再把链接插到文章里。文章多了,还要考虑图片放在哪里、以后能不能方便地找回来。
对我来说,一个自用图床最重要的是把这些事情做好。这次分享一下自己的开源项目 映屿 Img(Yingyu Img),一个面向个人站长的 WebP 图床,可以把图片上传、转换、整理和外链分享放在一起完成。
项目地址:GitHub · luoyeai/yingyu-img,代码采用 MIT 开源协议。
上传时自动转换 WebP
平时写教程,最常用的就是截图和网站配图。映屿 Img 支持上传 JPEG、PNG 和静态 WebP,统一处理成 WebP 图片,可以调整画质、最长边,也可以选择无损压缩。
使用时直接拖入图片,或者粘贴剪贴板里的截图即可。图片比较多,也可以拖入整个文件夹,系统会自动分批排队处理,不用一张张选择。
对于博客配图,我更看重的是少折腾:上传时完成格式转换和尺寸调整,写文章时直接取链接。具体画质还是要看图片内容,文字较多的截图可以先查看处理前后的对比,再决定是否降低画质。
目前只处理静态图片,不支持 GIF、SVG、APNG 和动态 WebP。需要放动图的文章,要另外安排存储方式。
图片多了,也要方便查找
图床用久了,找图往往比上传更麻烦。同一篇文章的截图、不同网站的配图,如果都堆在一起,过一段时间很难记住哪张是哪张。
映屿 Img 提供图片分组,可以按名称、分组和上传日期筛选,也能修改显示名称和 alt 描述。整理分组时,不会改变已有外链,已经插入文章的图片不需要跟着重新替换链接。
外链支持复制直链、Markdown 和 HTML。像我这样用 Typecho 写博客,复制 Markdown 格式后粘贴进正文就可以;使用其他建站程序,也可以按编辑器需要选择对应格式。
此外还有图片查重、可选保留原图和回收站。回收站默认保留 30 天,误删时可以恢复,但它不能代替独立备份。
图片放本地,还是放对象存储?
个人博客刚开始图片不多,可以先用本地存储,部署和管理都比较直接。图片逐渐增加,或者希望使用对象存储,也可以配置 S3 兼容存储、腾讯云 COS 或阿里云 OSS。
这几种方式按自己的情况选就可以,不需要一开始就配齐。对象存储需要另外准备存储桶,配置区域、权限和访问域名,产生的存储与流量费用也由对应服务商收取。
对个人站长来说,长期维护比单纯选哪种存储更重要。建议使用自己管理的图片域名,并定期备份数据库、配置和图片;以后换服务器或调整存储,也更容易提前做好迁移安排。
一个人用的图片工作室
映屿 Img 采用单管理员模式,只允许管理员登录,不开放公开注册。它更适合自己管理博客、文档或网站配图。
这里要区分一下:上传管理需要登录,生成的图片外链用于公开访问。不要把身份证件、账号资料等私密图片当作普通博客配图上传分享。
想自己搭建,需要准备什么?
项目基于 Laravel 13,当前运行环境需要:
- Nginx、PHP 8.4.1 或更高版本。
- MySQL 8.0 或更高版本。
- 支持 WebP 编解码的 Imagick / ImageMagick,以及项目要求的 PHP 扩展。
使用完整安装包,不需要自己安装 Composer 或 Node,也不需要 Redis、Docker 或常驻队列。
宝塔用户可以先创建网站和专用空数据库,上传完整安装包,将运行目录设为 /public,按项目说明配置伪静态和 HTTPS,再访问 /install 完成网页安装。
下载时注意选择 Release 中包含依赖的完整安装包,GitHub 自动提供的 Source code 源码压缩包不能直接替代它。完整步骤和伪静态配置放在项目文档里,跟着操作即可:
如果你也在维护个人博客,想把配图的上传、WebP 转换和外链管理集中到一个地方,可以看看这个项目。使用中遇到问题,或者有适合个人站长的功能建议,欢迎到 GitHub Issues 反馈。


