Featured image of post 保姆级!永久免费图床方案

保姆级!永久免费图床方案

使用 GitHub + jsDelivr + PicGo 搭建,无流量限制、稳定不炸图

前言

本文分享一套永久免费、稳定高速、无限流量的图床方案,主要借助两个工具: 一个是 jsDelivr ,免费全球 CDN,加载 npm 库、GitHub 静态文件 (js/css/ 图片),国内访问稳定,无需注册,直接拼接链接使用,想必大家也经常能在一些静态资源链接上看到它。 一个是 **PicGo **,开源免费的图床管理工具,不仅可以用来管理GitHub,还支持很多其他的图床。

jsDelivr虽然有全球CDN,但毕竟在国外,所以速度肯定没有国内快,对速度和稳定性有要求的可以用国内阿里云的OSS,按量计费,很便宜的,每个月每GB几毛钱,冷数据更便宜

创建 GitHub 图床仓库

单独创建一个公开的 GitHub 仓库,专门用来存放图片。

  1. 登录 GitHub,点击右上角「New repository」新建仓库。

  2. 仓库配置:

  • Repository name:自定义,我这里爆红是因为已经创建过了
  • Description:可选
  • Public必须勾选,jsDelivr 仅支持公开仓库的资源访问。
  • 勾选Add a README file,方便后期管理。
  1. 点击「Create repository」完成创建。

生成 GitHub Token

PicGo 需要授权才能自动上传图片到你的 GitHub 仓库,这里我们生成一个最小权限的永久 Token,既满足上传需求,又保证账号安全。

  1. 点击 GitHub 头像 → Settings → 下滑找到Developer settings

  2. 点击Personal access tokens (classic) → 选择Generate new token (classic)

  3. 基础配置:

  • Note:自定义备注,比如picgo-img,方便后期识别。
  • Expiration:选择No expiration(永久有效,避免 Token 过期导致上传失败)。
  • Select scopes:只勾选public_repo权限即可,仅授予对所有公开仓库的读写权限。
  1. 下滑点击Generate token立即复制保存生成的 Token(只会显示一次,丢失需重新生成)。

下载安装PicGo

官网:Releases · Molunerfinn/PicGo

选择适配自己电脑的版本,直接下载,点击下一步安装就行

PicGo 配置

基础配置

点击左侧倒数第二个「PicGo Settings」,先配置基础功能:

  • 选择语言:我这里选了简体中文

  • 启动模式:我改成了 “打开主窗口” ,原静默启动就是双击后在托盘启动,不好用

  • 接受Beta版本更新:我关掉了,实验版本有时候不稳定

  • 时间戳重命名:保持关闭,不然会和后面的一个插件冲突

  • 上传后自动复制URL:保持开启,核心功能,图片上传完成后,链接会自动复制,直接粘贴到要用的地方即可。

Github 图床配置

  • 图床配置名:自定义,起个好辩别的就行

  • 设定仓库名:格式是用户名/仓库名,填我们上面创建的图床仓库

  • 设定分支名:填main就行,主分支一个就够了

  • 设定Token:就是我们上面创建的 Github Token

  • 设定存储路径:img/,保存在仓库img文件夹下,你叫其他的也行,末尾 / 不能漏

  • 设定自定义域名:https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名,核心配置,开启 jsDelivr CDN 加速

  • 点击确定即设置成功,默认第一个图床就是默认图床

/gh是 jsDelivr 的固定路径前缀,专门用于给 GitHub 仓库的静态文件加速,格式为https://cdn.jsdelivr.net/gh/用户名/仓库名/文件路径不能省略或写错

安装 rename-file 插件

强烈推荐安装,安装这个插件主要是为了实现图片上传后可以按日期自动归档,生成对应的文件夹。该插件还会对上传的图片按照格式进行重命名,不仅可以避免出现上传同名图片导致旧文件被覆盖的情况,还可以防止图片缓存问题,具体可以看最后的注意事项。

  • 点击左侧「插件设置」,搜索rename-file,点击安装

  • 安装完成后,点击右下角「设置」图标,配置 picgo-plugin-rename-file

    • 文件(路径)格式:会自动将上传到 GitHub 的图片按年/月归档,并对上传的图片按年月日时分秒毫秒-随机6位字符格式进行重命名,如 img/2026/06/202606011200000-45dfg1.png

      1
      
      {y}/{m}/{y}{m}{d}{h}{i}{s}{ms}-{rand:6}
      
    • 点击确定

额外配置(可选)

  • 快捷键设置 点击左侧「PicGo设置」,选择设置快捷键,配置「截图并上传」的快捷键,默认是启用状态,可以改成自己常用的截图快捷键,用起来更顺手),按一下直接截图、上传、复制链接,全程不用切换软件。担心误触发也可以禁用

上传图片

  • 点击左侧上传区,即可根据自己的需求上传图片,选择需要的链接格式,上传后图片会自动上传到GitHub仓库,并自动复制链接到剪切板,直接粘贴就可以使用
  • 上传的图片可以点击左侧相册查看,嫌太多也可以删除,这里的删除并不会影响到 GitHub 仓库

注意事项

  • 修改图片后,旧链接还是显示旧图片?

    这是 jsDelivr 的 7 天静态缓存导致的,解决方法:

    临时方案:将图片链接的域名改为

    1
    
    purge.jsdelivr.net
    

    打开链接即可强制刷新缓存:

    1
    
    https://purge.jsdelivr.net/gh/用户名/仓库名/img/2026/05/xxx.png
    
  • 永久方案 ? 使用 PicGo 的时间戳重命名功能或使用 rename-file 插件,这样每次上传的图片文件名都是唯一的,就不会出现旧图片缓存冲突问题。

  • 避坑

    如果使用批量上传功能,PicGo自带的时间戳重命名功能和rename-file插件普通的日期格式,都会出现弹出的文件名完全一样,导致后上传的文件覆盖先上传的 所以我在上述使用 rename-file 插件时,在原时间格式后加了6位数的随机英文数字混合字符,这要是还能重复可以去买彩票了 如果你实在担心,rename-file 插件官网(liuwave/picgo-plugin-rename-file)还提供了其他配置,百分百不会冲突,只不过我嫌文件名太长了就没设置

本博客已稳定运行
发表了7篇文章 · 总计49.29k字
Powered by Cloudflare Pages
使用 Hugo 构建
主题 StackJimmy 设计