解决ob的图床问题
背景
如 解决ob的发布问题 中所描述的,我有很强的发布需求,在发布过程中,经常遇到这样的问题:
- 图片数量多了后,压缩、打包、发布的速度就降下去了 [强诉求]
- 不同的电脑间,文件同步变成了一个比较麻烦的事 [弱诉求]
- 分享一篇文档时,本地图片地址无法查看 [中等诉求]
于是就开始思考这个问题 : 如何解决 blog 的 图片/视频 等静态资源问题?
方案实际是很成熟的 : 使用图床。
实际上,图床是一个非常广泛的需求,不论大家用什么写作工具,只要想发布到互联网上,都需要用到图床。
在网上,大家能搜到很多第三方的图床平台(github、gitee、bilibili 以及一些奇奇怪怪的平台),但很多都不稳定,容易挂掉(或关闭),对图床而言,稳定性是极其重要的,否则重新整理历史文档中的图片地址,然后再重新发布到各平台……这也太难了……
(想想微信图片加了防盗链、简书加了防盗链……)
自建图床 可能对有强写作习惯的人来说是一个比较好的方案。
图床 的搭建需要两个部分: 存储空间 + 管理工具。
在云端上,存储空间 可以直接选择 对象存储 ,也可以使用服务器挂载硬盘,各有一定优劣,但对大多数人来说,对象存储
是一个更合适的选择。
管理工具,可以建立在云端服务器上,也可以建立在本机。如果选择了对象存储方案,则可以把管理工具建在本机。好处是省去了服务器的维护工作。
我会选择 七牛云 作为存储空间 (因为每个月有 10Gb 免费空间和流量啊!七牛赛高!),选择用 picGo 作为图床管理工具。
我在 ob 中,使用 自动上传图片 ,直接将 copy 的图片上传到了图床上。
使用了一段时间后,发现直接用图床有些问题,比如断网环境下就没法使用了…… 而且平常在本地使用时,会有明显的图片显示延迟。
其实,我需要的是这样的功能:
- 图片平常就保存在本地,但希望存放在某个特定目录 [似乎需求不强]
- 图片是采用 md 格式的引用,而不是 wiki 的引用 [图片直接上传问题问题也不大]
- 当有发布需要时,把对应的本地图片链接转换成图床地址 [同上]
- 发布打包时,对照是否已经存在上传过的图片,已上传则不再上传 [同上]
可以查阅 ob 的开发者文档,看看怎么拦截 cmd + v 。同时可以参考 自动上传图片 ,看看他是怎么做到的。
ps: 2022-07-30 按,目前使用的 picGo,使用 cmd + shift + v 和 cmd + v 两种方式选择图片存本地和上传。因为强缓存的问题,实际也没有多少请求 cdn 。目前够用,暂时不考虑其他方案。
之前 picGo 没设置跨域,在 ob 中写 js 脚本上传会有问题,看了下 picGo 的代码,提了 pr ,已经通过了,也解决了自己写 js 脚本上传问题。
详细信息可以查看 自动解决文章的图片问题
解决预览大小问题
目前没有比较通用的解决方案,或许使用 image 标签是不错的方案。
ps: 2022-07-30 按,在 ob 中,使用 image in editor 的插件,就能很好解决。在 web 端,默认是 100% 的大小,正常需求下没问题。图片组 可以参考 hexo fluid 的方案,有需求时再看。
可以参考的工具:
md-image-upload
将图片下载到本地
上传图片的服务
自动上传图片
归属:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!