GitHub 图床
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_14a81405/gh-image-space 技能到 AI 助手。
技能介绍
解决什么问题
当你需要在 Markdown 文档、静态网页或聊天窗口里插入一张本地图片时,直接引用本地文件路径通常无法生效。把图片传到商业图床不仅可能需要付费,还受限于平台策略。这个技能利用 GitHub 的公开仓库与 jsDelivr CDN,把仓库变成一个免费的、可公网访问的静态资源服务器。它解决的核心问题是:将本地图片转化为经过加速、可直接嵌入或分享的公网 URL。
核心机制与工作流程
技能的核心逻辑封装在 scripts/upload_image.py 中,主要分为上传、压缩、缓存刷新三个环节。
- 智能压缩策略:上传前脚本会自动判断图片类型。带透明通道的截图或图标会转为保留 alpha 的
WebP;不透明图片优先使用jpegli生成高质量JPEG,若环境未安装该命令则回退至WebP。长边超过--max-size(默认 2560px)时会进行等比缩放,并支持通过--quality控制 WebP 质量。 - 隐私与缓存处理:默认开启 EXIF 剥离,防止照片中的 GPS 等元数据泄露。上传完成后,脚本会调用 jsDelivr purge 接口主动刷新 CDN 缓存,确保新生成的 URL 立即可访问,而非等待边缘节点传播。
- 交互式配置:首次运行若未检测到仓库配置(退出码 2),脚本会明确提示需要提供
owner/repo格式的公开仓库地址。配置信息仅保存在本地~/.workbuddy/gh-image-space/config.json,不涉及任何密钥写入。
适用边界与注意事项
- 仓库可见性:目标 GitHub 仓库必须为
public。jsDelivr 仅加速公开仓库,私有仓库的链接无法在公网解析。 - 认证要求:本机需已执行
gh auth login,或在环境变量中设置具有相应权限的GITHUB_TOKEN。 - 尺寸硬上限:若走
jpegli压缩路径,图片长边被固定限制在 2048px 以内,这是该工具的物理限制。 - URL 规范化:返回的
@分支形式地址会被 CDN 301 跳转到具体的 commit SHA,这是预期行为。
使用场景
- 在撰写技术博客时,需要将本地的架构图或截图插入到 Markdown 文档中,并获取公网可访问的链接。
- 开发前端页面时,需要将本地的图标或照片转为 WebP 或 JPEG 格式,并托管到 CDN 以加速静态资源加载。
- 在社群分享照片前,需要剥离图片中的 GPS 等 EXIF 隐私元数据,并生成可以直接在浏览器打开的公网 URL。
- 管理静态网站时,需要将本地新生成的图片上传到 GitHub 仓库,并立即刷新 CDN 缓存使新链接立即生效。
适合人员
- 需要在 Markdown 文档中频繁插入本地截图并寻找免费图床方案的技术博客作者。
- 正在开发个人网站或前端页面,需要免费托管并加速静态图片资源的独立开发者。
- 习惯使用 GitHub 仓库作为静态资源存储,并依赖 jsDelivr 提供全球 CDN 加速的全栈工程师。