前言

写博客的时候需要引用很多图片,一种常见的方式是在仓库中新建一个目录然后引用。但是这样的话在网页查看时会有点慢。所以本文试图寻求一种直接、有效、方便、免费(尽量或者很实惠)的图床方案。

鱼和熊掌,不可兼得

自建图床

这种方案可满足接受备案(实名认证)及付费用户的需求。

又拍云

需要域名备案

七牛云

  1. https 图片外链收费
  2. 需要域名备案

阿里云 OSS

阿里云 OSS 计费由四个部分组成: 存储费用 + 流量费用 + 请求费用 + 数据处理费用

免费图床

(不够安全和方便)

sm.ms

Image Upload - SM.MS - Simple Free Image Hosting

5 MB max per file. 10 files max per request.

聚合图床 - 免费无限图片上传

单图最大 5M,1000 个文件

限制条件见此

路过图床 - 免费图片上传, 专业图片外链, 免费公共图床

全球 CDN 加速, 支持外链, 原图保存, 最大单张支持 10 MB

限制条件服务条款 - 路过图床

搜爱图床

又一个靠爱发电的免费图床

图床测试

为了实验上述免费图床的有效性,我分别上传了一张图片以供测试。如果他们的服务可用,则可以在下方看到图片被正常加载。如果只是临时使用,可以点击图片直达使用。

路过图床

聚合图床

Image Upload - SM.MS - Simple Free Image Hosting

图壳

postimages

Snipaste_2021-01-19_20-16-37.png

开发者

0xDkd/auxpi: 🍭 集合多家 API 的新一代图床
staugur/picbed: 基于 Flask 的 Web 自建图床,支持存储到又拍云、七牛云、阿里云 OSS、腾讯云 COS、GitHub、Gitee

真的免费

服务提供商 jsDelivr

// load any GitHub release, commit, or branch

// note: we recommend using npm for projects that support it

https://cdn.jsdelivr.net/gh/user/repo@version/file

比如,我们在用户名(imoyao)下创建仓库(statics),则分支(master/main)下的文件(file_path_with_name)可以通过 CDN 获取。

//图片上床到Github仓库的地址
https://github.com/{imoyao}/{statics}/tree/{master}/{file_path_with_name}

//jsdelivr链接地址
https://cdn.jsdelivr.net/gh/{imoyao}/{statics}@{master}/{file_path_with_name}

解决方案

实现思路

  1. 借助 GoodSync/freefilesync(待验证)实现主站、博客、wiki 中的图片备份到 static 目录;
  2. 图床目录中的图片全部进行无损压缩;
  3. 将 post 中的图片链接替换为 jsDelivr;

文件夹同步软件

GoodSync vs freefilesync

关于备份,有两个极优秀的软件我不得不提——Macrium Reflect 和 GoodSync。如果说 Macrium 为我提供了整套的系统以及磁盘备份的解决方案,那么 GoodSync 可以说是只要有正在运行的系统(它也可以运行在 U 盘里)存在,它可以解决任何的备份、同步、传输需求。

它支持任意(可以非本机,可以在内网,可以是云存储)文件夹到任意文件夹备份与同步。

同时它还支持自动执行同步、备份功能,通过检测文件夹的变动,所以它可以满足我上述的两个需求。

参考阅读文件同步工具 GoodSync 限免又来了,这货到底有什么用? - 小众软件

最终选择:FreeFileSync

配置自定义规则

注意

同步配置时选择自定义,上方选择文件对比时可能出现的情形,下方选择当出现配置情形时需要做的相应处理动作,最好不要把右侧镜像目录的图片删除。如果对自己的配置不确定,请保证回收站可用的同时对处理逻辑进行测试!

使用教程:强大的备份软件 FreeFileSync - 知乎

剪切图片直接上传仓库

使用 PicGo 直接上传仓库,参见:Molunerfinn/PicGo: A simple & beautiful tool for pictures uploading built by vue-cli-electron-builder

定期对图片进行无损压缩

按需查找:TinyPNG – Third-Party Solutions
插件版:TinyPNG Image Optimizer - IntelliJ IDEs | JetBrains
更多参见:有没有一个批量压缩图片软件? - 知乎
Github ActionTinify Image Action · Actions · GitHub Marketplace

图片去重

使用DoubleKiller - Download [english] (Big Bang enterprises)对上传 Github 仓库的图片进行去重。
寻找一款清理电脑中重复文件的软件? - 知乎

视频

视频文件较大,我们不要上传到 Github 仓库中,直接使用视频图床即可。
参见:图床 - 图片上传, 外链, 高清原图, 永久免费, 支持视频上传

由于上面的网站只支持最大 5M 的视频,所以我们可以使用 OneDrive 网盘存储我们的文件,然后使用下面的网站解析直链使用:

OneDrive 网盘永久外链地址生成工具

其他

  1. 博客尽量少加图片
  2. 尽量将图片放在博客目录下,不使用图床
  3. 对于不重要的图片,可以使用免费图床
  4. 可以购买一些付费的专门的图床服务

参考链接

嗯,图片就交给它了 - 少数派
无需注册、打开即用,这 8 个免费好用的图床工具值得一试 - 少数派
16 个免费图床网站全收集 - 稳定国内可用支持外链图片服务推荐 (含测速对比) - 异次元软件下载
免费图床 - 不死鸟 - 分享为王官网
更换博客图床 - 简书
可能是最佳的免费图床 | 斯是陋室,惟吾德馨
博客图床迁移记
markdown 博客图床上传的艰辛之路 | 洞香春
博客图床最佳解决方案 | 嘟嘟独立博客
各位 v 友,你们博客的图床都采用什么方案啊 - V2EX
图片镜像缓存服务—防盗链图片、imgur 等国内无法访问图片的解决方案 – Funletu